HBase (三) 架构设计

Hbase物理模型

《HBase (三) 架构设计》 image.png

HBase主要有三个进程。 HMaster, HRegionServer, Zookeeper(进程名为HQuorumPeer). 独立模式下运行的时候用jps查看只能看到一个进程HMaster, 运行在一起.
下图是一个分布式的部署模式:

《HBase (三) 架构设计》 image.png

此集群拥有主备Master(只有一个Master能工作,需要通过zookeeper选举), 多个zookeeper和多个regionServer。

HMaster主服务器:

  1. 只有一个工作中
  2. 为RegionServer分配region
  3. 负载均衡
  4. RegionServer 的failover
  5. GFS上垃圾文件回收
  6. 处理schema更新请求

Region和Region服务器:

  1. 表在行方向上按行健范围划分的是Region
  2. 一个表处世只有region, 记录数增加到某个阈值时才开始分裂
  3. Region是分布式存储和负载均衡的最小单元。 注意: Region里还有按Column Family划分存储
  4. 一个节点一个HRegionServer
  5. 一个RegionServer管理多个Region实例
  6. 一个Region包含HLog和存放数据的Store

HLog:
用于灾难恢复,WAL log表示wirite ahead log, 写之前先记录操作,然后才会写数据

Store:

  1. Store是Region里按列簇划分的存储单元。分为内存的memstore和硬盘上的HFile.
  2. 写操作先写入memstore, 到阈值写入StoreFile(HFile)
  3. HFile文件数量正常到阈值会触发region分裂,由HMaster分配到相应的region服务器上
  4. 客户端检索数据,先查内存,再查文件

Hbase访问流程

《HBase (三) 架构设计》 image.png

客户端读写访问流程

  1. HBase client通过访问zookeeper上保存的hbase:meta表的位置确定需要访问的region.
  2. client直接访问RegionServer做读写,不需要经过HMaster
  3. HMaster会为fail的regionServer的上的region做重新分配,也会做region的load balance.

《HBase (三) 架构设计》 image.png

客户端如果访问管理类的操作,需要与HMaster进行通信。

再回顾总结下各个进程的主要功能:

  • HMaster:

    • 分配region到Region server
    • Region server的负载均衡
    • Region Server 的failover
    • HDFS的垃圾回收
    • 处理schema更新请求
  • HRegionServer:

    • 维护region, 处理对该region请求
    • 切分region
  • Zookeeper:

    • Master选举
    • 存储region元数据
    • 存储region server状态, 维护和region server的心跳
    • 存储HBase的schema和table
    原文作者:半夕蝶梦
    原文地址: https://www.jianshu.com/p/9046abb10a48
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞