HBase学习之负载均衡(balance)

本文介绍了HBase的负载均衡机制,包括全局计划的算法流程、配置参数,以及随机分配计划和批量启动分配计划的应用场景。全局计划以5分钟为周期进行,避免在特定条件下执行。算法通过计算Region数量的平均值确定RegionServer的负载上下限,然后进行Region的迁移以达到均衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有关负载均衡的相关源码分析请参考上一篇博文:
http://blog.youkuaiyun.com/u013080251/article/details/68947654

负载均衡是计算机网络领域的一个专业术语,该术语在分布式系统领域应用非常广泛。对于HBase来讲,不同节点(RegionServer)用户请求需要负载均衡技术,其实在HBase很早的版本中已经实现了负载均衡,0.92版本后HBase的负载均衡算法可以通过实现LoadBalancer接口的hbase.master.loadbalancer.class来自定义。HBase通过Region数量实现简单的负载均衡,虽然这种方式比较简单,但官方认为这样的实现是最简洁、高效的,能够满足绝大部分的需求。接下来将介绍三种负载均衡计划的原理和应用场景,以及手动控制的负载均衡。


一、全局计划
全局计划是最常见的负载均衡,它贯穿在整个集群的平衡运行期内,负载均衡以特定时间间隔(hbase.balancer.period默认是5分钟)执行。但是,当遇到如下场景时不进行全局负载均衡:

  • 均衡负载开关balanceSwitch关闭。
  • HMaster未完成初始化操作。
  • RIT中有未处理完的Region(当前有region处于splitting状态)。
  • 有正在处理的Dead RegionServer。
  • RegionServer上的平均Region数量小于等于1.

1.算法流程
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等待分配,遍历最轻的负载机器(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值