HBase 基础架构

架构图如下
image.png
zookeeper
  • HBase 在 zookeeper 中存储节点 /hbase 的子节点如下图:
    image.png
  • /hbase/backup-masters Master: 节点的备份节点, 实现 HBase 的高可用

  • /hbase/meta-region-server: 存储 HBase 集群 hbase:meta 元数据所在 RegionServer 访问地址

  • /hbase/table: 集群中所有的表信息

  • /hbase/region-in-transition: HBase 迁移 region 时使用

  • /hbase/table-lock: 用 zookeeper 实现分布式锁, 用于 HBase 表的 DDL 操作

  • /hbase/rs: 临时节点, 集群中所有运行的 RegionServe, 通过心跳感知 RegionServer 是否宕机, 并在宕机后通知 HMaster 处理

HRegionServer 响应用户 IO 请求
WAL(HLog):
  • 防止缓存数据丢失, 数据写入缓存之前会先写入 HBase, 即使写缓存失效, 也可以通过 HLog 日志进行恢复
  • 用于主从复制, 通过回放主服务器的 HLog 实现主从复制
BlockCache
  • BlockCache称为读缓存,HBase 会将一次文件查找的 Block 块缓存到 Cache 中,以便后续同一请求或者邻近数据查找请求,可以直接从内存中获取,避免昂贵的IO操作
Region
  • 数据的一个分片, 当数据表的大小超过一定阀值时就会被水平切分, 分裂为两个 Region, Region 是负载均衡的基本单位, 通常一张表的 region 会分布在多个 RegionServer 上面
HMaster
  • 处理用户的管理请求, 建表、删表、修改表、切分表、合并数据和 compaction 操作
  • 管理集群中所有 regionServer, 负责 region 的负载均衡,以及 RegionServer 的宕机恢复

你可能感兴趣的:(HBase 基础架构)