初识Hbase
- 什么是Hbase
- Hbase原理
- Hbase数据模型
- Hbase逻辑结构
- Hbase物理存储结构
- Hbase数据模型
- Hbase基本架构
什么是Hbase
HBase 是一个高可靠性、高性能、面向列、支持海量数据存储的 NoSQL 数据库。
Hbase官网: Hbase
Hbase原理
Hbase数据模型
HBase表 = multi-dimensional map (多维度的Map: kv键值对)。
Hbase逻辑结构
逻辑结构如下图所示:
- 列和列族:HBase中列分组形成列族。列族的所有列成员都具有相同的前缀。列族必须在模式定义时预先声明,而列不需要在模式定义时定义,但可以在表启动和运行时动态变化。
- Row key:唯一,相当于主键ID。
- Region和Store:每个列族对应一个Region中的Store,Store分为1个MemStore和多个SotreFile,那么一个表如果有多个列簇,那必然会有增加Region中的Store的数量。
Hbase物理存储结构
Hbase数据模型
- 命名空间:Name Space。与关系数据库系统中的数据库类似的表的逻辑分组,每个命名空间下有多个表。HBase有两个自带的命名空间,分别是HBase和default,HBase中存放的是HBase内置的表,default 表是用户默认使用的命名空间。
- 行:Row。HBase表中的每行数据都由一个Row key和多个列组成,数据是按照 Row key的字典顺序存储的,并且查询数据时只能根据Row key进行检索,所以 Row key的设计十分重要。
- 列:Column。HBase中的每个列都由Column Family(列族)和 Column Qualifier(列限定符)进行限定,只需指明列族,而列限定符无需预先定义。
- 时间戳:Time Stamp。用于标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会自动为其加上该字段,其值为写入HBase的时间。
- Region :Region是HBase数据管理的基本单位,Region有一点像关系型数据的分区。Region中存储着用户的真实数据,而为了管理这些数据,HBase使用了Region Sever来管理Region。
- 单元格:Cell。由{Row key, column Family:column Qualifier, time Stamp} 唯一确定的单元。Cell中的数据是没有类型的,全部是字节码形式存储。
Hbase基本架构
- Region Server:Region Server 为Region的管理者,其实现类为HRegionServer,主要作用如下:
- 对于数据的操作:get, put, delete;
- 对于Region的操作:splitRegion、compactRegion。
- Master:Master是所有Region Server的管理者,其实现类为HMaster,主要作用如下:
- 对于表的操作:create, delete, alter
- 对于 RegionServer的操作:分配regions到每个RegionServer,监控每个RegionServer
的状态,负载均衡和故障转移。
- Zookeeper:HBase通过Zookeeper来做Master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。
- HDFS:HDFS为HBase提供最终的底层数据存储服务,同时为HBase提供高可用的支持。