HBase热点消除方法及系统的制作方法

文档序号:9235537阅读:509来源:国知局
HBase热点消除方法及系统的制作方法【
技术领域
】[0001]本发明涉及互联网大数据领域,尤其涉及一种HBase(—种分布式的、面向列的开源数据库)热点消除方法及系统。【
背景技术
】[0002]HBase表中包括有多个Reg1n,每个Reg1n中都存储一定的数据。集群中的Reg1nServer可能分配到一个或多个Reg1n。由于每个Reg1n上的数据请求量的不同,可能会出现一个或多个Reg1n热点,所谓Reg1n热点是指请求量超过一第一请求量阈值的Reg1n。这些Reg1n热点的出现,会使得数据的请求时间变长,大大影响整个集群的稳定性和可用性,严重时甚至可能造成系统瘫痪。[0003]目前,HBase并没有Reg1n热点发现及自动消除工具,只能利用自带的split(Java中一种语句)方法将指定的Reg1n进行拆分,但是这种方法需要技术人员手动地设定要拆分的Reg1n,十分麻烦,效率也不高。【
发明内容】[0004]本发明要解决的技术问题是如何克服现有技术中难以消除HBase中的热点的缺陷,提供一种能够自动消除热点的HBase热点消除方法及系统。[0005]本发明是通过下述技术方案解决上述技术问题的:[0006]本发明提供一种HBase热点消除方法,其特点是,包括:[0007]S1、设定集群的HBase表中的每一Reg1n的被交换次数的初始值为O;[0008]S2、检测集群,将集群中的Reg1n热点加入至一热点机器列表,Reg1n热点为请求量超过一第一请求量阈值的Reg1n;[0009]S3、判断该热点机器列表包括的Reg1n热点的数量是否为0,若是,则结束流程,若否,则执行S4;[0010]S4、从该热点机器列表中选择一个Reg1n热点作为待消除Reg1n热点;[0011]S5、判断该待消除Reg1n热点的被交换次数是否超过一交换阈值,若超过,则执行S6,若未超过,则执行S7;[0012]S6、将该待消除Reg1n热点拆分成两个Reg1n,然后执行S8;[0013]S7、从该集群中选择一不具有Reg1n热点的Reg1nServer,并将该待消除Reg1n热点与被选择的Reg1nServer的Reg1n交换,并更新该待消除Reg1n热点的被交换次数;[0014]S8、将该待消除Regi0n热点从该热点机器列表中移除,然后执行S3。[0015]其中,步骤S2可以使用统计学的方法对集群的HBase表进行统计分析,获得数据分布及方差,根据集群的平均负载确定该第一请求量阈值,进而确定集群中的Reg1n热点。通过步骤S7,Reg1n热点被交换到了其它的Reg1nServer上。由此,便将负载从一台机器,转移到了另一台机器。,而有一些Reg1n热点因为自身请求量过大,即使经过了多次交换,不能成为非Reg1n热点,此时,只能对这类Reg1n热点进行拆分,才能转换成非Reg1n热点。该HBase热点消除方法不仅能够自动检测Reg1n热点,还能自动消除热点,缩短数据的请求时间,具有快速、高效地优点。[0016]较佳地,S1还包括:[0017]S11、设定集群的被检测次数的初始值为O;[0018]S12、判断集群的被检测次数是否达到一检测阈值,若达到,则结束流程,若未达到,贝IJ执行S2;[0019]S2还包括更新该被检测次数;[0020]S3替换为:S3’、判断该热点机器列表包括的Reg1n热点的数量是否为0,若是,则执行S12,若否,则执行s4。[0021]其中,若已经达到了被检测次数,则不允许再操作集群,要限定这个工具的操作时间,将其他的时间返回给HBase自身,让HBase自身的一些机制来进行处理,不需要再持续地进行Reg1n热点的检测与消除。所述被检测次数限定了流程的结束时间点,防止HBase热点消除方法不断地运行,以给整个系统带来负担。[0022]较佳地,S7还包括:[0023]S71、从该集群中请求量最小的Reg1nServer中选取请求量最小的Reg1n,并将该待消除Reg1n热点与被选取的Reg1n交换。[0024]较佳地,S7还包括:判断该集群中的不具有Reg1n热点的Reg1nServer中是否包括与该待消除Reg1n热点同一table的Reg1n,若是,则执行S72,若否,则执行S71;[0025]S72、将该待消除Reg1n热点与该同一table的Reg1n交换。[0026]较佳地,S72包括:从与该待消除Reg1n热点同一table的Reg1n中选取访问量最低的Reg1n,将该待消除Reg1n热点与选取的访问量最低的Reg1n交换。[0027]较佳地,32还包括将该热点机器列表中的Reg1n热点按照访问量由高到低排序;S4还包括从该热点机器列表中选择访问量最高的Reg1n热点作为待消除Reg1n热点。[0028]较佳地,还包括:[0029]T1、获取集群的HBase表的Reg1nServer热点,Reg1nServer热点为请求量超过一第二请求量阈值的Reg1nServer;[0030]T2、计算该Reg1nServer热点的访问量最高的N个Reg1n的方差,N为正整数;[0031]T3、判断该方差是否小于一方差阈值,若是,则执行T4,若否,则执行T5;[0032]T4、从该集群中选择一请求量未超过该第二请求量阈值的Reg1nServer,并将该Reg1nServer热点的访问量最高的M1AReg1n与被选择的Reg1nServer的Reg1n交换,M1为小于或等于N的正整数;[0033]T5、将访问量最高的M2AReg1n作为Reg1n热点加入至该热点机器列表,然后执行S3,M2为小于或等于N的正整数。[0034]其中,步骤T1可以使用统计学的方法对集群的HBase表进行统计分析,获得数据分布及方差,根据集群的平均负载确定该第二请求量阈值,进而确定集群中的Reg1nServer热点。考虑到在HBase中,有一些Reg1nServer虽然不包含Reg1n热点,但是其包含的Reg1n的负载总和过大,也会造成Reg1nServer过热,成为Reg1nServer热点。上述步骤中,若方差小于该方差阈值,则说明Reg1nServer热点上的Reg1n的请求量比较平均,通过将请求量最高的Reg1n交换到其它的Reg1nServer上,改变集群上Reg1n的分布,就能使得Reg1nServer热点转换成为非Reg1nServer热点;若方差不小于该方差阈值,则说明Reg1nServer热点上的Reg1n的请求量十分不平均,有个别Reg1n的请求量可能较大,那么就可以将这类Reg1n作为Reg1n热点来进行处理。该HBase热点消除方法不仅能够自动检测Reg1nServer热点,还能自动消除热点,并且使得整个HBase的热点检测更全面。[0035]本发明还提供一种HBase热点消除系统,其特点是,包括:[0036]—设定单元,用于设定集群的HBase表中的每一Reg1n的被交换次数的初始值为O;[0037]一检测单元,用于检测集群,将集群中的Reg1n热点加入至一热点机器列表,Reg1n热点为请求量超过一第一请求量阈值的Reg1n;[0038]—第一判断单元,用于判断该热点机器列表包括的Reg1n热点的数量是否为0,若是,则结束调用,若否,则调用一选择单元;[0039]该选择单元,用于从该热点机器列表中选择一个Reg1n热点作为待消除Reg1n执占.^w,[0040]—第二判断单元,用于判断该待消除Reg1n热点的被交换次数是否超过一交换阈值,若超过,则调用一拆分单元,若未超过,则调用一交换单元;[0041]该拆分单元,用于将该待消除Reg1n热点拆分成两个Reg1n,然后调用一移除单元;[0042]该交换单元,用于从该集群中选择一不具有Reg1n热点的Reg1nServer,并将该待消除Reg1n热点与被选当前第1页1 2 3 4 
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1