Hbase的核心架构
Hbase 是由 Client、Zookeeper、Master、HRegionServer、HDFS 等几个组建组成。
1. Client
Client 包含了访问 Hbase 的接口,另外 Client 还维护了对应的 cache 来加速 Hbase 的访问,比如 cache 的.META.元数据的信息
2. Zookeeper
Hbase 通过 Zookeeper 来做 master 的高可用、RegionServer 的监控、元数据的入口
以及集群配置的维护等工作。具体工作如下:
- ① 通过 Zoopkeeper 来保证集群中只有 1 个 master 在运行,如果 master 异常,会通过竞争机制产生新的 master 提供服务
- ② 通过 Zoopkeeper 来监控 RegionServer 的状态,当 RegionSevrer 有异常的时候,通过回调的形式通知 Master RegionServer 上下文的信息
- ③ 通过 Zoopkeeper 存储元数据的统一入口地址。
3. Hmaster
master 节点的主要职责如下:
- ① 为 RegionServer 分配 Region
- ② 维护整个集群的负载均衡
- ③ 维护集群的元数据信息发现失效的 Region,并将失效的 Region 分配到正常RegionServer 上当 RegionSever 失效的时候,协调对应 Hlog 的拆分
4. HRegionServer
HRegionServer 直接对接用户的读写请求,是真正的“干活”的节点。它的功能概括如下:
- ① 管理 master 为其分配的 Region
- ② 处理来自客户端的读写请求
- ③ 负责和底层 HDFS 的交互,存储数据到 HDFS
- ④ 负责 Region 变大以后的拆分
- ⑤ 负责 Storefile 的合并工作
5. Region的寻址方式
Region的寻址方式 是通过 zookeeper.MATA 文件来处理
- ① 第一步:Client 请求 ZK 获取.META.所在的 RegionServer 的地址。
- ② 第二步:Client 请求.META.所在的 RegionServer 获取访问数据所在的 RegionServer 地址,client 会将.META.的相关信息 cache 下来,以便下一次快速访问。
- ③ 第三步:Client 请求数据所在的 RegionServer,获取所需要的数据。
6. HDFS
HDFS 为 Hbase 提供最终的底层数据存储服务,同时为 Hbase 提供高可用(Hlog 存储在HDFS)的支持。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 ING-BLOG!
评论