美文网首页我爱编程
HBase (三) 架构设计

HBase (三) 架构设计

作者: 半夕蝶梦 | 来源:发表于2018-03-23 09:50 被阅读40次

    Hbase物理模型

    image.png

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


    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访问流程

    image.png

    客户端读写访问流程

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

    相关文章

      网友评论

        本文标题:HBase (三) 架构设计

        本文链接:https://www.haomeiwen.com/subject/yxuwqftx.html