hbase 动态均衡分配策略和整体架构

在这里插入图片描述
hbase是基于列族存储,列族下面有很多的列,
hbase一张表可以特别大,可以有多个列族,每个列族中又有多个列,由于一张表存储的数据量比较多,所以就把一张表横向拆分多个region进行存储,一台节点就是一个regionserver,一张表的不同region可以存储在不同的regionserver中,同时,在一个region中又存在不同的列族,每个列族又存着不同的列,一个列族横向只对应着一个hfile,竖向对应着多个hfile和region,

  • 一个hregionserver里有多个hregion,多个hregion共享一个hlog,一台机器上只有一个hlog
  • 一个hregion是对一个大表进行水平上的切分,一个hregion里有多个hstore
  • 一个hstore里面包含了一个或者多个storefile,一个menstore
  • 一个storefile对应着一个hfile,一个hfile就保存着一个列族的数据
  • hbase’的namespace相当于mysql一个库,映射到hdfs上就是一个文件夹

Hbase会通过zookeeper选举出hmaster,
hmaster的线程loadbalancer负责各regionserver的负责均衡,通过移动region.

slop 在StochasticLoadBalance的slop值为0.001,在其他负载均衡器如simpleloadbalancer是 0.2,也就是当
hbase.regions.slop Description
Rebalance if any regionserver has average + (average * slop) regions. The
default value of this parameter is 0.001 in StochasticLoadBalancer
(the default load balancer), while the default is 0.2 in other load
balancers (i.e., SimpleLoadBalancer).
Default 0.001
*

hbase动态动态均衡实现策略,系统默认如果max(region)>cell(avg(region)) ||
min(region)<floor(avg(region),即有一台regionserver的region数目比平均每台server的region向上取整还大,或者有一台regionserver的region数目比平均每台server的region向下取整还小,就执行均衡策略,每五分钟检查一次.
从server的region数目比cell(avg(region)大的server上,把region的数目取到和这个值相等,然后在向cell(avg(region)小的server上分配,将其数目增加到cell(avg(region)这个数目,因此可能会出现三种情况
1.多余的region分配完后,所有的region刚好不比floor小,且不比cell大,合格
2.分配完后,仍然有机器的region数目低于floor值,但仍有region已经分配完,这时候从max的机器上取一个region,向低于floor的机器上分配,此时如果没有分配完,就向floor上分配
3.分配完后,所有的都>=floor,但是没有分配完,就向floor上继续分配
一. 如果有region数量为1 5 5,三台机器,平均数为3.6,floor值为3.cell值为4,从region为5的机器上各取一个一共两个,向低于floor的机器上分配,分配完后,各机器状态为3,4,4,满足条件
二.如果有数量为1,6,6的三台机器,avg=4.3,floor=4,cell=5,从2号,3号机器各取1个,一共两个,开始分配分配后是,3,5,5,已经分配完毕,但是第一台机器上的region数目仍然小于3,从cell上各取一个,此时集群状态为3,4,4待分配数目2,分配到1号一个,此时都是等于floor值,但是还有一个没有分配出去,剩下的那个直接分配到floor值上去即可
三.如果是1,3,10 avg=4.6,cell=5,floor=4,从三号机取5个,此时1,3,5待分配5个,分到1号机三个,分到二号机1个,此时4,4,5 还有一个没有分配出去,最后一个分配到floor上去即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值