Client
包含访问HBase的接口并维护cache来加快对HBase的访问
Zookeeper
保证任何时候,集群中只有一个活跃HMaster
存贮所有HRegion的寻址入口
实时监控HRegionServer的上线和下线信息,并实时通知HMaster
存储HBase的schema和table元数据
HMaster
为HRegionServer分配HRegion
负责HRegionServer的负载均衡
发现失效的HRegionServer并重新分配其上的HRegion
管理用户对table的增删改操作
HRegionServer
HRegionServer维护HRegion,处理对这些HRegion的IO请求
HRegionServer负责切分在运行过程中变得过大的HRegion
HRegion
HBase自动把表水平划分成多个区域(HRegion),每个HRegion会保存一个表里面某段连续的数据
每个表一开始只有一个HRegion,随着数据不断插入表,HRegion不断增大,当增大到一个阀值的时候,HRegion就会等分会两个新的HRegion(裂变)
当table中的行不断增多,就会有越来越多的HRegion。这样一张完整的表被保存在多个HRegionserver 上
Memstore 与 storefile
一个HRegion由多个store组成,一个store对应一个CF(列族)
store包括位于内存中的memstore和位于磁盘的storefile
写操作先写入memstore,当memstore中的数据达到某个阈值,HRegionServer会启动flash,将cache写入storefile,每次写入形成单独的一个storefile,storefile以HFile格式保存在HDFS上
当storefile文件的数量增长到一定阈值后,系统会进行合并(minor、major compaction),在合并过程中会进行版本合并和删除工作(majar),形成更大的storefile
当一个HRegion所有storefile的大小和数量超过一定阈值后,会把当前的HRegion分割为两个,并由HMaster分配到相应的HRegionserver服务器,实现负载均衡
原文:https://www.cnblogs.com/xiangyuguan/p/11116583.html