Hbase的架构

限于喜欢 提交于 2019-12-28 16:26:04

- Client : hbase客户端,
    1.包含访问hbase的接口。比如,linux shell,java api。
    2.除此之外,它会维护缓存来加速访问hbase的速度。比如region的位置信息。
- Zookeeper : 
    1.监控Hmaster的状态,保证有且仅有一个活跃的Hmaster。达到高可用。
    2.它可以存储所有region的寻址入口。如:root表在哪一台服务器上。
    3. 实时监控HregionServer的状态,感知HRegionServer的上下线信息,并实时通知给Hmaster。
    4. 存储hbase的部分元数据。
- HMaster : 
    1. 为HRegionServer分配Region(新建表等)。
    2. 负责HRegionServer的负载均衡。
    3. 负责Region的重新分配(HRegionServer宕机之后的Region分配,HRegion裂变:当Region过大之后的拆分)。
    4. Hdfs上的垃圾回收。
    5. 处理schema的更新请求
- HRegionServer :
    1. 维护HMaster分配给的Region(管理本机的Region)。
    2. 处理client对这些region的读写请求,并和HDFS进行交互。
    3. 负责切分在运行过程中组件变大的Region。
- HLog : 
    1. 对HBase的操作进行记录,使用WAL写数据,优先写入log(put操作:先写日志再写memstore,这样可以防止数据丢失,即使丢失也可以回滚)。
- HRegion : 
    1. HBase中分布式存储和负载均衡的最小单元,它是表或者表的一部分。
- Store : 
    1. 相当于一个列簇
- Memstore : 
    1. 内存缓冲区,用于将数据批量刷新到hdfs中,默认大小为128M
- HStoreFile : 
    1. 和HFile概念意义,不过是一个逻辑概念。HBase中的数据是以HFile存储在Hdfs上。 

各个组件之间的关系

hmaster:hregionserver=1:*

hregionserver:hregion=1:*
hregionserver:hlog=1:1
hregion:hstore=1:*
store:memstore=1:1
store:storefile=1:*
storefile:hfile=1:1

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!