HBase 体系结构

Client

  • 客户端包含访问 HBase 的接口,同时在缓存中维护着已经访问过的 Region 位置信息,用来加快后续数据访问过程

Zookeeper

在 HBase 系统中,ZooKeeper 扮演着非常重要的角色

  • 实现 HMaster 高可用:通常情况下系统中只有一个 HMaster 工作,一旦 HMaster(Active)由于异常宕机,ZooKeeper 会检测到该宕机事件,并通过一定机制选举出新的 HMaster,保证系统正常运转。
  • 管理系统核心元数据:管理当前系统中正常工作的 RegionServer 集合,保存系统元数据表 hbase:meta 所在的 RegionServer 地址等。
  • 参与 HRegionServer 宕机恢复:ZooKeeper 通过心跳可以感知到 HRegionServer 是否宕机,并在宕机后通知 HMaster 进行宕机处理。
  • 实现分布式表锁:HBase 中对一张表进行各种管理操作需要先加表锁,防止其他用户对同一张表进行管理操作,造成表状态不一致。和其他 关系型数据库(RDBMS) 表不同,HBase 中的表通常都是分布式存储,ZooKeeper 可以通过特定机制实现分布式表锁。

HMaster

HMaster 主要负责 HBase 系统的各种管理工作

  • 处理用户的各种管理请求,包括建表、修改表、权限操作、切分表、合并数据分片以及 Compaction 等。
  • 管理集群中所有 HRegionServer,包括 HRegionServer 中 Region 的负载均衡、HRegionServer 的宕机恢复以及 Region 的迁移等。
  • 清理过期日志以及文件,HMaster 会每隔一段时间检查 HDFS 中 HLog 是否过期、HFile 是否已经被删除,并在过期之后将其删除。

HRegionServer

HRegionServer 主要负责响应用户的 I/O 请求,是 HBase 中最核心的模块,由 WAL(HLog)、BlockCache以及多个 Region 构成

  • 负责维护分配给自己的 Region
  • 响应用户的读写请求
  • 缓存的刷新
  • StoreFile 的合并

HDFS

HBase 底层依赖 HDFS 组件存储实际数据,包括用户数据文件、HLog 日志文件等最终都会写入 HDFS 落盘。HDFS 是 Hadoop 生态圈内最成熟的组件之一,数据默认三副本存储策略可以有效保证数据的高可靠性。HBase 内部封装了一个名为 DFSClient 的 HDFS 客户端组件,负责对 HDFS 的实际数据进行读写访问。

posted @ 2022-01-04 16:01  追こするれい的人  阅读(62)  评论(0编辑  收藏  举报