hbase的负载均衡策略

1.负载均衡概述

  1. Master的LoadBalancer线程周期性的在各个RegionServer间移动region维护负载均衡

1 经常被并发查询的数据不要存储在同一个RegionServer中 , 避免热点读取问题 .
2 当一个机器上经过大量的插入或者删除数据以后 ,region合并或者分裂 ,那么机器上的region的数量会相差很大 .
3 当新增了节点以后 , 应该去分配一些其他机器上的region数据
4 当某个RegionServer宕机以后 , 这台机器上数据的分配
region的执行

  1. Hbase中负载均衡的开关balanceSwitch默认是开启的 .hbase.balancer.period是设定负载均衡的参数,默认为每5分钟(300000毫秒)运行一次,参数配置通过hbase-site.xml文件。具体的设置格式如下:
<property>
<name>hbase.balancer.period</name>
<value>300000</value>
</property>

​​​​​​​

2. 自动全局负载均衡流程

  1. 两个有效参数:MIN = floor(average)(表示下限)和MAX=ceil(average)(表示上限)。
  2. 循环过载机器,将Region卸载到MAX数量,在小于等于MAX时停止排序Region(按时间新旧)。
  3. 遍历最轻负载机器,分配Region直到Server达到MIN值。在大于等于MIN时停止。这些Region都是之前卸载的。可能没有足够地卸载Region让轻负载的机器达到MIN值,如果这样,在Region数等于neededRegions(轻负载机器的数量)时停止。可能我们分配了卸载的Region到轻负载机器,但是仍然有Region没有分配出去,这种情况下,本步骤完成,在下面步骤中再做处理。
  4. 如果neededRegions是非零的值,遍历负载最重的机器,从每台机器上卸载一个Region,使得它们的值从MAX到MIN。
  5. 现在有很多Region等待分配,遍历最轻的负载机器(多台),分配Region到MIN。
  6. 如果仍然有Region没有分配,遍历最轻的负载机器(多台),这次分配Region到MAX。
  7. 所有Server的Region数量时MAX或者MIN,另外,所有大于等于MAX的Server保证在均衡完成后都是MAX个Region。从而保证Region移动的最小数量。

其中,轻负载指的是Region数量小于等于AVG,过载指大于等于AVG,所有的RegionServer都按照负载从大到小排序,存放在TreeMap中(保证先遍历过载Server)。

3. 手动负载均衡

  1. kill 掉不是Hmaster节点的 regionserver(slave2)
  2. hbase 16010 查看regionserver在slave2节点
  3. 在master节点启动 regionserver(slave2)
    master $>hbase-daemons.sh start regionserver
  4. hbase 16010 查看regionserver负载不均衡 (多刷新 0 6)
    balance负载均衡指令,需使用开关模式,原因负载均衡比较耗费资源:
    hbase(main):> balance_switch true    //开启负载均衡
    hbase(main):> balancer                      //执行负载均衡
    hbase(main):> balance_switch false   //关闭负载均衡
    hbase(main):> balancer "force"           //强制负载均衡
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值