一种基于请求数的Hbase数据块分配方法及装置制造方法及图纸

技术编号:10651369 阅读:158 留言:0更新日期:2014-11-19 14:23
本发明专利技术公开了一种基于请求数的Hbase数据块分配方法及装置,该方法根据数据块服务器的平均请求数,将超过平均请求数的数据块服务器上的数据块按照其对应的请求数从小到大的顺序依次移出,直到每个数据块服务器对应的请求数总数大于等于且最接近所述平均请求数;将移出数据块按照其请求数从大到小排序组成待分配数据块列表;将没有达到平均请求数的数据块服务器按照其请求数总数与平均请求数的差值从小到大排序组成待分配数据块服务器列表;将待分配数据块列表的数据块按照预设策略分配给待分配数据块服务器列表的数据块服务器。本发明专利技术还同时公开了实现上述方法的装置。本发明专利技术的方法及装置能够基于请求数实现数据块服务器间的负载均衡。

【技术实现步骤摘要】
一种基于请求数的Hbase数据块分配方法及装置
本专利技术属于数据存储
,尤其涉及一种基于请求数的Hbase数据块分配方法及装置。
技术介绍
Hbase(HadoopDatabase)是一个分布式的、面向列的开源数据库,Hbase以表的形式存储数据,表由行和列组成,如表1所示:表1其中RowKey是用来检索记录的主键,访问Hbase表中的行,可以通过单个RowKey来访问,或者通过一个RowKey范围来访问,或者进行全表的扫描。RowKey可以是任意字符串,存储时,表中所有行都按照RowKey的字典序排序存储。Hbase表中每个列都归属于某个列族(Columnfamily),每个列族可以有多个列。当Hbase表随着记录数不断增加而变大后,会逐渐分裂为多个数据块(region),region是Hbase中分布式存储和负载均衡的最小单元,不同的region可以分布在不同的服务器上,但是一个region是不会拆分到多个服务器上的。现有技术中Hbase具有三种负载均衡策略,分别如下:简单负载均衡策略,将Hbase中所有的region平均分配到各个服务器上。最优节点均衡策略,Hbase是基于hadoop的,一个region在hadoop上的数据一般都有多分(这个取决于hadoop备份份数的配置)。例如每个region对应三个最优节点,优先分配到第一优先级的服务器节点上,如果第一优先级服务器节点不存在,那么就会比较第二优先级和第三优先级服务器节点,哪个服务器节点上的region数少就分配到哪个服务器节点上。随机均衡策略,首先计算整个服务器集群的权重,然后随机挑选出两对region和服务器,尝试移动两者之后,重新计算整个集群的权重,如果变小,那么确认移动,不然撤销。重复处理,直到满足配置的优化条件。在实际使用中,很多数据的访问经常集中在某几个服务器的某几个region,而其他服务器经常处于空闲状态。而现有技术基本上注重在数据存储的负载均衡,好处就是各个服务器上存储的数据保持平均,不会出现各个服务器数据已经存满,而个别服务器存储空间还剩余很多的情况,总而言之,现有方案保证了数据的平均分布,没有考虑访问量。但是分布式系统中数据的访问及处理速度比存储空间的合理利用更加重要。公开号为CN102508789A的中国专利技术专利申请公开了一种系统分级存储的方法,根据数据的重要性、访问频率、保留时间和性能指标,将数据采取不同的存储方式分别存储在不同性能的存储设备上,实现数据客体在存储设备之间的自动迁移。从而将不经常访问的数据自动移到存储层次中较低的层次,释放出较高成本的存储空间给更频繁访问的数据,以获得更好的性价比。然而该方法是应用到存储空间,将经常用到的数据越来越集中到性能高的存储空间,不涉及到服务器对数据的处理能力。显然该方法会进一步加剧频繁使用的数据所在的服务器的繁忙,因此并不能充分解决分布式系统中数据的访问及处理速度问题。
技术实现思路
本专利技术的目的是提供一种基于请求数的Hbase数据块分配方法及装置,主要是通过统计Hbase分布式存储系统中各个数据块服务器上数据块(region)的请求数来预测该数据块将来的访问量,然后通过将请求数比较集中的数据块分摊到比较空闲的服务器上,来达到均衡访问量的目的。为了实现上述目的,本专利技术技术方案如下:一种基于请求数的Hbase数据块分配方法,应用于Hbase分布式存储系统,该方法包括步骤:计算Hbase分布式存储系统中数据块服务器的平均请求数,所述平均请求数是所述Hbase分布式存储系统中所有数据块服务器请求数总和除以数据块服务器个数的商取整数得到,将超过平均请求数的数据块服务器上的数据块按照其对应的请求数从小到大的顺序依次移出,直到每个数据块服务器对应的请求数总数大于等于且最接近所述平均请求数;将移出数据块按照其请求数从大到小排序组成待分配数据块列表;将没有达到平均请求数的数据块服务器按照其请求数总数与平均请求数的差值从小到大排序组成待分配数据块服务器列表;将待分配数据块列表的数据块按照预设策略分配给待分配数据块服务器列表的数据块服务器。其中所述预设策略具体为:依次为待分配数据块服务器列表的每个数据块服务器在待分配数据块列表中分配一个数据块,所述数据块为待分配数据块列表中的首个期望数据块,所述期望数据块的请求数与所述数据块服务器的请求数之和大于等于且最接近所述平均请求数。根据本专利技术的分配方法,能够快速为没有达到平均请求数的数据块服务器分配到合适的数据块,将请求数比较集中的数据块分摊到比较空闲的服务器上,来达到均衡访问量的目的。进一步地,如果在一次分配后,还有未分配完的移出数据块,则对于分配后还没有达到平均请求数的数据块服务器再次进行分配;如果待分配数据块服务器列表中数据块服务器请求数都达到平均请求数,且还有部分移出数据块未能最终分配,则将其保留在原数据块服务器中。本专利技术数据块分配方法还包括:把具有关联关系的数据块分配给不同数据块服务器,以达到所述数据块所存储数据的并行访问,所述具有关联关系的数据块为请求数增长量同步的数据块。本专利技术所述请求数不是即时请求数,而是预设历史时间段内请求数的平均值。本专利技术还同时提出了实现上述方法的基于请求数的Hbase数据块分配装置,应用于Hbase分布式存储系统,该装置包括:数据块移出模块,用于计算Hbase分布式存储系统中数据块服务器的平均请求数,所述平均请求数是所述Hbase分布式存储系统中所有数据块服务器请求数总和除以数据块服务器个数的商取整数得到,将超过平均请求数的数据块服务器上的数据块按照其对应的请求数从小到大的顺序依次移出,直到每个数据块服务器对应的请求数总数大于等于且最接近所述平均请求数;数据块排序模块,用于将移出数据块按照其请求数从大到小排序组成待分配数据块列表;数据块服务器排序模块,用于将没有达到平均请求数的数据块服务器按照其请求数总数与平均请求数的差值从小到大排序组成待分配数据块服务器列表;分配模块,用于将待分配数据块列表的数据块按照预设策略分配给待分配数据块服务器列表的数据块服务器。本专利技术提出的一种基于请求数的Hbase数据块分配方法及装置,根据数据块服务器的请求数总数,将超过数据块服务器平均请求数的数据块服务器中的数据块移出,放入没有达到平均请求数的数据块服务器中,从而避免一些数据块服务器访问量过大,而另一些数据块服务器空闲的情况,提高分布式存储系统数据块服务器的性能。同时按照数据块对应的请求数大小,从小到大去除数据块服务器中的数据块,可以最大限度降低数据块移动对用户访问的影响。附图说明图1为Hbase分布式存储系统的系统架构图;图2为本专利技术一种基于请求数的Hbase数据块分配方法的流程图;图3为本专利技术一种基于请求数的Hbase数据块分配装置结构示意图。具体实施方式下面结合附图和实施例对本专利技术技术方案做进一步详细说明,以下实施例不构成对本专利技术的限定。利用Hbase分布式存储系统可在廉价PC服务器上搭建起大规模结构化存储集群。HBase是GoogleBigtable的开源实现,类似GoogleBigtable利用GFS作为其文件存储系统,HBase利用HadoopHDFS作为其文件存储系统;Google运行MapReduce来处本文档来自技高网
...
一种基于请求数的Hbase数据块分配方法及装置

【技术保护点】
一种基于请求数的Hbase数据块分配方法,应用于Hbase分布式存储系统,其特征在于,该方法包括步骤:计算Hbase分布式存储系统中数据块服务器的平均请求数,所述平均请求数是所述Hbase分布式存储系统中所有数据块服务器请求数总和除以数据块服务器个数的商取整数得到,将超过平均请求数的数据块服务器上的数据块按照其对应的请求数从小到大的顺序依次移出,直到每个数据块服务器对应的请求数总数大于等于且最接近所述平均请求数;将移出数据块按照其请求数从大到小排序组成待分配数据块列表;将没有达到平均请求数的数据块服务器按照其请求数总数与平均请求数的差值从小到大排序组成待分配数据块服务器列表;将待分配数据块列表的数据块按照预设策略分配给待分配数据块服务器列表的数据块服务器。

【技术特征摘要】
1.一种基于请求数的Hbase数据块分配方法,应用于Hbase分布式存储系统,其特征在于,该方法包括步骤:计算Hbase分布式存储系统中数据块服务器的平均请求数,所述平均请求数是所述Hbase分布式存储系统中所有数据块服务器请求数总和除以数据块服务器个数的商取整数得到,将超过平均请求数的数据块服务器上的数据块按照其对应的请求数从小到大的顺序依次移出,直到每个数据块服务器对应的请求数总数大于等于且最接近所述平均请求数;将移出数据块按照其请求数从大到小排序组成待分配数据块列表;将没有达到平均请求数的数据块服务器按照其请求数总数与平均请求数的差值从小到大排序组成待分配数据块服务器列表;将待分配数据块列表的数据块按照预设策略分配给待分配数据块服务器列表的数据块服务器;其中所述数据块服务器请求数是该数据块服务器在预设历史时间段内请求数的平均值。2.根据权利要求1所述的数据块分配方法,其特征在于,所述预设策略具体为:依次为待分配数据块服务器列表的每个数据块服务器在待分配数据块列表中分配一个数据块,所述数据块为待分配数据块列表中的首个期望数据块,所述期望数据块的请求数与所述数据块服务器的请求数之和大于等于且最接近所述平均请求数。3.根据权利要求2所述的数据块分配方法,其特征在于,如果在一次分配后,还有未分配完的移出数据块,则对于分配后还没有达到平均请求数的数据块服务器再次进行分配;如果待分配数据块服务器列表中数据块服务器请求数都达到平均请求数,且还有部分移出数据块未能最终分配,则将其保留在原数据块服务器中。4.根据权利要求1所述的数据块分配方法,其特征在于,所述数据块分配方法还包括:把具有关联关系的数据块分配给不同数据块服务器,以达到所述数据块所存储数据的并行访问,所述具有关联关系的数据块为请求数增长量同步的数据块。5.一种基于请求数的Hbase数据块分配装置,...

【专利技术属性】
技术研发人员:沈冬春
申请(专利权)人:浙江宇视科技有限公司
类型:发明
国别省市:浙江;33

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

1