【技术实现步骤摘要】
一种基于HBase+Redis的分布式存储中间件
[0001]本专利技术属于数据库
,具体涉及一种基于HBase+Redis提高数据读写速率的分布式存储中间件。
技术介绍
[0002]随着互联网的发展和大数据时代的到来,传统的数据存储、数据处理技术难以适应数据爆炸式的增长,非关系型数据库应运而生。HBase作为NoSQL数据库的典型代表,已被广泛应用于各行各业的数据存储与管理中。在HBase的发展过程中,HBase的负载均衡问题也开始显现。例如,在HBase分布式数据库环境中,由于分布式数据库中节点性能上的差异以及已存储数据量不同和数据库访问请求量不同,经常会出现以下情况:在某一个时刻,分布式数据库中某些节点的访问频率很高,节点负载很重,而另一些节点的访问频率很低,节点负载很低,导致了分布式数据库中节点负载不均衡的情况。负载不均衡就会影响HBase数据读写的性能,所以,需要通过一定的负载均衡策略,来均衡分布式数据库中各个节点的负载,使各个节点的负载达到均衡分配的状态,从而提高数据的读写性能。HBase作为分布式数据库,将数据存储在磁盘上,每次都需要从磁盘读取数据,影响数据读性能。
[0003]目前,在HBase上提高读写速度的负载均衡方案有基于子表限制的负载均衡方案,基于热点访问的负载均衡改进算法。在HBase增加数据缓存的方案有基于内存进行缓存的方案、使用原生Redis作为缓存的方案。基于子表限制的负载均衡方案,增加了对表的限制,只能在某些场景下提高系统性能,具有一定局限性;基于热点访问的负载均衡改进 ...
【技术保护点】
【技术特征摘要】
1.一种基于HBase+Redis的分布式存储中间件,其特征在于,以HBase集群和Redis作为底层框架,包括存储模块和查询模块,所述存储模块包括负载均衡组件、数据缓存组件和数据同步组件;所述负载均衡组件实现HBase Region和RegionServer的负载均衡,以提高HBase的读写性能;所述数据缓存组件实现基于时间平滑方法计算的热值缓存淘汰策略,以提高缓存命中率;所述数据同步组件实现基于协处理器的HBase和Redis的数据同步,以避免脏数据的产生。2.根据权利要求1所述的一种基于HBase+Redis的分布式存储中间件,其特征在于,所述负载均衡组件包括Region级别以及RegionServer级别的两种负载均衡策略。3.根据权利要求2所述的一种基于HBase+Redis的分布式存储中间件,其特征在于,所述Region级别的负载均衡策略,根据预分区和带虚拟节点的一致性哈希算法,避免数据写热点,即对HBase进行预分区,获取Region个数,将Region个数作为节点,采用带虚拟节点的一致性哈希算法获取数据存储Rowkey的Startkey。4.根据权利要求3所述的一种基于HBase+Redis的分布式存储中间件,其特征在于,获取Region个数,包括以下步骤:步骤a1:确定集群的预分区个数,单个节点的预分区个数的计算公式如下:其中,M表示RegionServer的内存大小;F表示RegionServer分给memstore的比例;S表示memstore的大小;A为表中列族的个数;步骤a2:确定集群的节点个数,集群总的预分区个数的计算公式如下:R=P*N
ꢀꢀꢀ
(2)其中,R表示集群预分区的总个数,P表示每个节点的预分区个数,N表示集群中节点的个数。5.根据权利要求3所述的一种基于HBase+Redis的分布式存储中间件,其特征在于,带虚拟节点的一致性哈希算法采用SHA_1算法。6.根据权利要求2所述的一种基于HBase+Redis的分布式存储中间件,其特征在于,所述RegionServer级别的负载均衡策略,使用贪心算法对RegionServer中的Region进行调换,包括如下步骤:步骤b1:输入RegionServer集合、负载均衡最大执行次数N,计算节点数n;步骤b2:获取每个RegionServer中每个Region的请求数,统计节点的请求数作为负载load_i,i<n,统计最大负载load_max、最小负载load_min、集群的总负载load_sum和平均负载load_avg;步骤b3:根据平均负载load_avg计算节点负载的理想上界load_Lmax和下界load_Lmin;步骤b4:设置i=1,使用最小最大优先级队列定义超负载队列overload_queue和低负载队列underload_queue;步骤b5:如果i<=n,转步骤b6,否则转步骤b11;步骤b6:如果load_i>load_Lmax,转步骤b7,否则转步骤b8;步骤b7:将第i个节点加入超负载队列;
...
【专利技术属性】
技术研发人员:郭昆,王钦泽,郭文忠,陈羽中,许玲玲,魏明洋,
申请(专利权)人:福州大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。