HBase基础
HBase基础
一、概述
- 1、HBase是一个领先的NoSQL数据库
a)是一个面向列存储的数据库
b)是一个分布式hash map
c)基于Google Big Table论文
d)使用HDFS作为存储并利用其可靠性 - 2、HBase特点
a)数据访问速度快,响应时间约2-20毫秒
b)支持随机读写,每个节点20k~100k+ ops/s
c)可扩展性,可扩展到20,000+节点
二、HBase发展历史
三、HBase应用场景
-
1、信息交换-消息传递
高容量,高速读写 -
2、内容服务-Web后端应用程序
高容量,高速读写
四、Apache HBase生态圈
HBase生态圈技术
1、Lily – 基于HBase的CRM
2、OpenTSDB – HBase面向时间序列数据管理
3、Kylin – HBase上的OLAP
4、Phoenix – SQL操作HBase工具
5、Splice Machine – 基于HBase的OLTP
6、Apache Tephra – HBase事务支持
7、TiDB – 分布式SQL DB
8、 Apache Omid - 优化事务管理
9、Yarn application timeline server v.2 迁移到HBase
10、Hive metadata存储可以迁移到HBase
11、Ambari Metrics Server将使用HBase做数据存储
五、HBase物理架构
概述
HBase采用Master/Slave架构
- 1、HMaster
- 2、RegionServer
- 3、Zookeeper
- 4、HBase Client
- 5、Region
HMaster
HMaster的作用
- 1、是HBase集群的主节点,可以配置多个,用来实现HA
- 2、管理和分配Region
- 3、负责RegionServer的负载均衡
- 4、发现失效的RegionServer并重新分配其上的Region
RegionServer
RegionServer负责管理维护Region
- 1、一个RegionServer包含一个WAL、一个BlockCache (读缓存)和多个Region
- 2、一个Region包含多个存储区,每个存储区对应一个列簇
- 3、一个存储区由多个StoreFile和MemStore组成
- 4、一个StoreFile对应于一个HFile和一个列簇
- 5、HFile和WAL作为序列文件保存在HDFS上
- 6、Client与RegionServer交互
Region和Table
- 1、单个Table(表)被分区成大小大致相同的Region
- 2、Region是HBase集群分布数据的最小单位
- 3、Region被分配给集群中的RegionServer
- 4、一个Region只能分配给一个RegionServer
HBase逻辑架构 - Row
- 1、Rowkey(行键)是唯一的并已排序
- 2、Schema可以定义何时插入记录
- 3、每个Row都可以定义自己的列,即使其他Row不使用
相关列定义为列族 - 4、使用唯一时间戳维护多个Row版本
在不同版本中值类型可以不同 - 5、HBase数据全部以字节存储
HBase数据管理
- 1、数据管理目录
a)系统目录表hbase:meta
存储元数据等
b)HDFS目录中的文件
c)Servers上的region实例 - 2、HBase数据在HDFS上
a)可以通过HDFS进行修复File
b)修复路径
RegionServer->Table->Region->RowKey->列簇
HBase架构特点
- 1、强一致性
- 2、自动扩展
a)当Region变大会自动分割 使
b)用HDFS扩展数据并管理空间 - 3、写恢复
使用WAL(Write Ahead Log) - 4、与Hadoop集成
HBase Shell
HBase Shell是一种操作HBase的交互模式
支持完整的HBase命令集