HBase表的Region分配方法及系统技术方案

技术编号:12571204 阅读:89 留言:0更新日期:2015-12-23 13:01
本发明专利技术公开了一种HBase表的Region分配方法及系统,其中Region分配方法包括:统计每一Region的Hash列值;分别计算每一Hash列值的平均分配数;选取目标RegionServer;统计目标RegionServer的Hash列值分布;将每一Hash列值分别作为待处理Hash列值,并待处理Hash列值对应的Region的数量是否大于该待处理Hash列值的平均分配数,若大于则从该待处理Hash列值对应的Region中选取N个第一Region并移出。本发明专利技术能够弥补现有技术中不同Hash列值的Region在集群中分配不均导致容易出现热点的不足,将不同Hash列值的Region均匀分配。

【技术实现步骤摘要】

本专利技术涉及互联网大数据领域,尤其涉及一种HBase表(一种分布式的、面向列的开源数据库)的Reg1n分配方法。
技术介绍
HBase表中包括有多个Reg1n,每个Reg1n中都存储一定的数据。集群中的Reg1nServer可能分配到一个或多个Reg1n。由于一些HBase表的schema最初设计时并没有采用Hash(哈希),导致数据写入、读取不均。现在在原有schema的基础上,添加了 Hash列,并使用Hash的结果集做pre-split (HBase的一种使用方法)。原来的Reg1n由于缺少Hash列,Hash列值都会为零,新的Reg1n则会均分到不同的Hash列值。新的schema上线之后,Hash列值不为零的reg1n数比较少,balancer (HBase自带的功能)不能很好地将Hash列值不为零的reg1n均分到整个集群,容易造成热点。这些热点的出现,会使得数据的请求时间变长,大大影响整个集群的稳定性和可用性,严重时甚至可能造成系统瘫痪。
技术实现思路
本专利技术要解决的技术问题是为了克服现有技术中不同Hash列值的Reg1n在集群中分配不均导致容易出现热点的缺陷,提供一种能够使得不同Hash列值的Reg1n均匀分配的HBase表的Reg1n分配方法及系统。本专利技术是通过以下技术方案解决上述技术问题的:本专利技术提供一种HBase表的Reg1n分配方法,其特点是,该Reg1n分配方法包括:S1、统计集群的HBase表中的每一 Reg1n的Hash列值;S2、分别计算集群中每一 Hash列值的平均分配数,每一 Hash列值的平均分配数分别等于该Hash列值对应的Reg1n的总数除以该集群的Reg1nServer的总数;S3、从该集群的 Reg1nServer 中选取一目标 Reg1nServer ;S4、统计目标Reg1nServer的Hash列值分布; S5、将目标Reg1nServer上每一 Hash列值分别作为待处理Hash列值,并判断目标Reg1nServer上待处理Hash列值对应的Reg1n的数量是否大于该待处理Hash列值的平均分配数,若大于则从该待处理Hash列值对应的Reg1n中选取N个第一 Reg1n并将该些第一 Reg1n移出,N为大于或等于I的整数。其中,目标Reg1nServer可以从集群的Reg1nServer中随机选取或自主指定;所述Hash列值分布包括目标Reg1nServer的每个Reg1n的Hash列值。35对目标Reg1nServer上每个Hash列值都进行一次判断,例如,若目标Reg1nServer上Reg1n的Hash列值包括0、1、2和3,那么T2会将0、1、2和3分别作为待处理Hash列值,并判断其对应的Reg1n的数量是否大于其平均分配数,以待处理Hash列值为O为例,若目标Reg1nServer上Hash列值为O的Reg1n的数量大于集群中Hash列值为O的平均分配数,则从目标Reg1nServer上Hash列值为O的Reg1n中选取N个Reg1n移出,若目标Reg1nServer上Hash列值为O的Reg1n的数量小于或等于集群中Hash列值为O的平均分配数,则不需从目标Reg1nServer上移出Hash列值为O的Reg1n,然后将待处理Hash列值设定为1,再次进行判断。本技术方案能够使得集群中每个Reg1nServer上不同Hash列值的Reg1n均勾分布,避免出现某个的Reg1nServer上的某个Hash列值的Reg1n过多的情况,防止出现热点、影响集群的稳定性和可用性。较佳地,N大于或等于目标Reg1nServer上该待处理Hash列值对应的Reg1n的个数与该待处理Hash列值的平均分配数的差值。通过本技术方案,目标Reg1nServer上该待处理Hash列值对应的Reg1n的个数小于或等于该待处理Hash列值的平均分配数,避免同一 Reg1nServer上某一种Hash列值的Reg1n过多。较佳地,35还包括在目标Reg1nServer上待处理Hash列值对应的Reg1n的数量大于该待处理Hash列值的平均分配数时执行以下步骤:S51、将该些第一 Reg1n移入该集群的一个或多个非目标Reg1nServer。该非目标Reg1nServer 为该集群中不是目标 Reg1nServer 的 Reg1nServer,例如,集群中的Reg1nServer A作为目标Reg1nServer时Reg1nServer B即为非目标Reg1nServer, Reg1nServer B 作为目标 Reg1nServer 时 Reg1nServer A 即为非目标Reg1nServer0较佳地,S51包括:S511、从该集群的非目标Reg1nServer中选取一待移入Reg1nServer,该待移入Reg1nServer为非目标Reg1nServer中该待处理Hash列值对应的Reg1n的数量小于该待处理Hash列值的平均分配数的Reg1nServer ;S512、计算M,M等于该待移入Reg1nServer上该待处理Hash列值对应的Reg1n的数量与该待处理Hash列值的平均分配数的差值的绝对值;S513、判断M是否大于或等于N,若是,执行S514,若否,执行S515;S514、将移出的N个第一 Reg1n移入至该待移入Reg1nServer ;S515,将移出的N个第一 Reg1n中选取M个第一 Reg1n移入至该待移入Reg1nServer,将N替换为N-M,然后返回步骤S5110其中,待移入Reg1nServer可以从该待处理Hash列值对应的Reg1n的数量小于该待处理Hash列值的平均分配数的非目标Reg1nServer中随机选择或按照某些要求指定。本技术方案优先将一个待移入Reg1nServer上该待处理的Hash列值对应的Reg1n数量达到平均分配数,若还有剩余的第一 Reg1n,则重新选择一个待移入Reg1nServer,直至所有的第一 Reg1n都移入至非目标Reg1nServer为止。较佳地,该Reg1n分配方法还包括:在执行S5之后返回步骤S 3,直至遍历该集群的每一 Reg1nServer。所述遍历该集群的每一 Reg1nServer是指集群中的每一 Reg1nServer均作为过目标Reg1nServer。再次返回步骤S3时选取的目标Reg1nServer与前一次选取的目标Reg1nServer 不同。本专利技术还提供一种HBase表的Reg1n分配系统,其特点是,该Reg1n分配系统包括:—第一统计单元,用于统计集群的HBase表中的每一 Reg1n的Hash列值;—计算单元,用于分别计算集群中每一 Hash列值的平均分配数,每一 Hash列值的平均分配数分别等于该Hash列值对应的Reg1n的总数除以该集群的Reg1nServer的总数;一目标单元,用于从该集群的Reg1nServer中选取一目标Reg1nServer ;—第二统计单元,用于统计目标Reg1nServer的Hash列值分布;—处理单元,用于将目标Reg1nServer上每一 Hash列值分别作为待处理Hash列值,并判断目标Reg1n本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/62/CN105187498.html" title="HBase表的Region分配方法及系统原文来自X技术">HBase表的Region分配方法及系统</a>

【技术保护点】
一种HBase表的Region分配方法,其特征在于,该Region分配方法包括:S1、统计集群的HBase表中的每一Region的Hash列值;S2、分别计算集群中每一Hash列值的平均分配数,每一Hash列值的平均分配数分别等于该Hash列值对应的Region的总数除以该集群的RegionServer的总数;S3、从该集群的RegionServer中选取一目标RegionServer;S4、统计目标RegionServer的Hash列值分布;S5、将目标RegionServer上每一Hash列值分别作为待处理Hash列值,并判断目标RegionServer上待处理Hash列值对应的Region的数量是否大于该待处理Hash列值的平均分配数,若大于则从该待处理Hash列值对应的Region中选取N个第一Region并将该些第一Region移出,N为大于或等于1的整数。

【技术特征摘要】

【专利技术属性】
技术研发人员:李亚锋刘钰帆
申请(专利权)人:携程计算机技术上海有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1