HBase模型和系统架构
一、HBase的相关概念
1、Table
2、Row
3、Column
4、Column Family
5、Column Qualifier
6、Cell
7、Timestamp
二、HBase的特点
1、容量大
HBase是一个集群无限扩展
2、面向列
数据是以列为单位存储的,单独对列进行各种操作
3、稀疏性
数据结构是稀疏矩阵,允许表的列为空,空列不占存储空间
4、数据多版本
HBase是由表组成,表中有很多单元格,单元格里有数据,数据有多个版本
5、扩展性
HBase的底层是HDFS,动态添加节点来扩容
6、高可靠性
HBase的底层是HDFS,HDFS有备份机制,所以保证了数据的高可靠性
三、HBase数据库和传统数据库的区别
1、存储模式
传统数据库中是基于行存储的;而HBase是基于列进行存储的
2、表字段
传统数据库中的表字段不超过30个;而HBase中表字段不做限制
3、可延伸性
传统数据库中的列是固定的,需要先确定列有多少才会增加数据去存储;
而HBase是根据数据存储的大小去动态的增加列,列是不固定的。
四、HBase的数据模型
1、概念
作业:
画出对应的逻辑模型和物理模型
id | name | age | sex | jobs |
---|---|---|---|---|
1 | 张三 | 35 | 男 | 教师 |
2 | 李丹 | 18 | 女 | 学生 |
3 | John | 26 | 男 | IT工程师 |
逻辑模型
RowKey | 列族 CF1 | 列族 CF2 |
id=1 | CF1:name="张三" | CF2:sex="男" |
CF1:age="35" | CF2:jobs="教师" | |
id=2 | CF1:name="李丹" | CF2:sex="女" |
CF1:age="18" | CF2:jobs="学生" | |
id=3 | CF1:name="John" | CF2:sex="男" |
CF1:age="26" | CF2:jobs="IT工程师" |
物理模型
RowKey | 列 | 单元格 |
---|---|---|
id=1 | CF1:name | 张三 |
id=1 | CF1:age | 35 |
id=1 | CF2:sex | 男 |
id=1 | CF2:jobs | 教师 |
id=2 | CF1:name | 李丹 |
id=2 | CF1:age | 18 |
id=2 | CF2:sex | 女 |
id=2 | CF2:jobs | 学生 |
id=3 | CF1:name | John |
id=3 | CF1:age | 26 |
id=3 | CF2:sex | 男 |
id=3 | CF2:jobs | IT工程师 |
五、HBase的系统架构
1、Client(客户端)
目的:操作数据库
使用RPC机制与HMaster和HRegionServer进行通信并维护Cache来加快对HBase的访问
2、ZooKeeper
ZooKeeper的作用
1)记录了HBase中的元数据信息
2)监控从节点HRegionServer的状态,汇报给HMaster
3)保证HBase集群只有一个HMaster在工作
3、HMaster(主节点)
HMaster的作用
1)实现HRegionServer之间处理数据的负载均衡
2)负责哪一个Region需要放在哪一个RegionServer上,负责HRegion的发配
3)管理用户对表的增删改查操作
4)发现失效的HRegionServer并重新分配其上的HRegion
5)处理元数据的更新请求
6)当HRegion切分后,负责两个新生成HRegion的分配
4、RegionServer
HLog(预写日志)
保证可靠性