前记
深入研究HBase架构
HBase架构组成
-
<李>
管理HRegionServer,实现其负载均衡。
李> <李>管理和分配HRegion,比如在HRegion分裂时分配新的HRegion;在HRegionServer退出时迁移其内的HRegion到其他HRegionServer上。
李> <李>实现DDL操作(数据定义语言、名称空间和表的增删,改列家人的增删改等)。
李> <李>管理名称空间和表的元数据(实际存储在HDFS上)。
李> <李>权限控制(ACL)。
李>
-
<李>
存放和管理本地HRegion。
李> <李>表中读写HDFS,管理的数据。
李> <李>客户端直接通过HRegionServer读写数据(从HMaster中获取元数据,找到RowKey所在的HRegion/HRegionServer后)。
李>
-
<李>
存放整个HBase集群的元数据以及集群的状态信息。
李> <李>实现HMaster主从节点的故障转移。
李>
HRegion
HMaster
-
<李>
协调HRegionServer
李>-
<李>
启动时HRegion的分配,以及负载均衡和修复时HRegion的重新分配。
李> <李>
监控集群中所有HRegionServer的状态(通过心跳和监听饲养员中的状态)。
管理职能
李>-
<李>
创建,删除,修改表的定义。
动物园管理员:协调者
组件如何一起工作吗
HBase的第一次读写
BigTable
-
<李>
从动物园管理员(/hbase/meta-region-server)中获取hbase:元的位置(HRegionServer的位置),缓存该位置信息。
李> <李>从HRegionServer中查询用户表对应请求的RowKey所在的HRegionServer,缓存该位置信息。
李> <李>从查询到HRegionServer中读取行。
李>
hbase:元表