Hbase系统架构
http://www.cnblogs.com/shitouer/archive/2012/06/04/2533518.html
HBase数据模型
组成部件说明:
RowKey: Table主键行键Table中记录按照RowKey排序
Timestamp: 每次对数据操作对应的时间戳,也即数据的versionnumber
ColumnFamily: 列簇,一个table在水平方向有一个或者多个列簇,列簇可由任意多个Column组成,列簇支持动态扩展,无须预定义数量及类型,二进制存储,用户需自行进行类型转换
Table&Region
1.Table随着记录增多不断变大,会自动分裂成多份Splits,成为Regions
2.一个region由[startkey,endkey)表示
3.不同region会被Master分配给相应的RegionServer进行管理
两张特殊表:-ROOT-&.META.
.META. 记录用户表的Region信息,同时,.META.也可以有多个region
-ROOT- 记录.META.表的Region信息,但是,-ROOT-只有一个region
Zookeeper中记录了-ROOT-表的location
客户端访问数据的流程:
Client->Zookeeper->-ROOT-->.META.->用户数据表
多次网络操作,不过client端有cache缓存
组成部件说明
Client:
使用HBaseRPC机制与HMaster和HRegionServer进行通信
Client与HMaster进行通信进行管理类操作
Client与HRegionServer进行数据读写类操作
Zookeeper:
ZookeeperQuorum存储-ROOT-表地址、HMaster地址
HRegionServer把自己以Ephedral方式注册到Zookeeper中,HMaster随时感知各个HRegionServer的健康状况
Zookeeper避免HMaster单点问题
HMaster:
HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的MasterElection机制保证总有一个Master在运行
主要负责Table和Region的管理工作:
1管理用户对表的增删改查操作
2管理HRegionServer的负载均衡,调整Region分布
3RegionSplit后,负责新Region的分布
4在HRegionServer停机后,负责失效HRegionServer上Region迁移
HRegionServer:
HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据