hbase region 分配方式

Posted 格格巫 MMQ!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hbase region 分配方式相关的知识,希望对你有一定的参考价值。

参与 Region 分配的重要对象
在 Region 分配过程当中,起着重要做用有以下一些对象。安全

HMaster— 是 HBase 中的 Master server ,仅有一个。
HRegionServer— 负责多个 HRegion 使之能向 client 端提供服务,在 HBase cluster 中存在多个HRegionServer 。

ServerManager— 负责管理 Region server 信息,好比每一个 Region server 的 HServerInfo( 这个对象包含HServerAddress 和 startCode), 已 load Region 个数,死亡的 Region server 列表

RegionManager — 负责将 region 分配到 region server 的具体工做,还有监视 root 和 meta 这 2 个特殊 region的状态。
RootScanner — 按期扫描 root region ,以发现没有分配的 meta region 。
MetaScanner— 按期扫描 meta region, 以发现没有分配的 user region 。

这些对象的关系如图所示:负载均衡

Region 分配过程

Root region 的分配

HMaster 起动时,首先会经过 RegionManager 把 rootRegionLocation (里面包含 HServerAddress )的值置为null ,而后把 root region 从待处理 region 列表中移除(若是有的话),而后从新将其放入待处理 region 列表(regionsInTransition ),并将其状态设置为 UNASSIGNED( 未分配 ).函数

当一个 Region server 启动完成时,它会调用 reportForDuty 函数向 HMaster 报告它的启动,报告固然是经过HMasterRegionInterface 的 regionServerStartup 方法。而后 HMaster 会把 Region server 的报告转交给ServerManager 的 regionServerStartup 方法处理。 ServerManager 会将这个新的 RegionServer 加入 region server 列表而且把它的 server load 设为空闲的。线程

以上是关于hbase region 分配方式的主要内容,如果未能解决你的问题,请参考以下文章

Hbase中Region,Split,Store的关系

深入Hbase原理(超详细)

巧用ChatGPT 解决 Hbase 快照方式读性能优化问题

HBase Region Locality

hbase 预分区

hbase 基础 —— 架构