一种基于HBase的朱丽叶暂停优化方法、系统及设备技术方案

技术编号:23399846 阅读:19 留言:0更新日期:2020-02-22 12:08
本发明专利技术提出的一种基于HBase的朱丽叶暂停优化方法、系统及设备,在HBase的ReginServer的堆内存管理中,使用CMS并发回收器,进行回收的同时保证应用不会停止。同时在RegionServer中增加了HBase独有的新策略MSLAB,以memstore为最小单元的内存管理,将memstore中分为多个2MB大小chunk进行存入数据,在一个chunk放满数据后才会申请下一个chunk,减少了小碎片引起的无法插入数据的问题。又因为CMS并发回收器的作用而减少了老年代的暂停时间,从而推迟了朱丽叶暂停的来临时间的同时也减少了朱丽叶暂停的持续时间。

An optimization method, system and equipment of Juliet pause based on HBase

【技术实现步骤摘要】
一种基于HBase的朱丽叶暂停优化方法、系统及设备
本专利技术涉及计算机存储
,更具体的说是涉及一种基于HBase的朱丽叶暂停优化方法、系统及设备。
技术介绍
伴随着服务器的内存的不断增大,我们所使用的大数据集群的内存也变的越来越大。而安装在这些集群上的HBase组件为了提高性能,会设置的很大的堆内存用来提高HBase数据库访问的速度。这样HBase的RegionServer在使用一段时间过程后会出现停止一切服务进程来进行内存空间的整理的行为,且进行内存整理的时间伴随内存的增大会越来越长。在大数据集群中,zookeeper会因为检测不到停止进程的RegionServer的心跳,使该节点RegionServer宕机,最终导致的后果是该节点的RegionServer自杀,称之为HBase的朱丽叶暂停。在使用大内存服务器逐渐成为主流趋势的现在,这种情况不但常见并且几乎无法避免。目前存在有几种使用回收器的办法来延时朱丽叶暂停来临的时间或减少暂停的时间,但是每种方法都存在一定缺陷和局限性。
技术实现思路
针对以上问题,本专利技术的目的在于提供一种基于HBase的朱丽叶暂停优化方法、系统及设备,使用CMS与HBase新的独有策略MSLAB进行组合,并对两种策略可能出现的冲突进行优化。两者相互协调,从而减小朱丽叶暂停造成的灾害。本专利技术为实现上述目的,通过以下技术方案实现:一种基于HBase的朱丽叶暂停优化方法,包括:使用MSLAB将RegionServer的内部缓存分为若干存储单元进行管理;在RegionServer中增加并发回收器CMS;通过调整MSLAB参数回避与CMS的策略冲突。进一步,所述使用MSLAB将RegionServer的内部缓存分为若干存储单元进行管理包括:调用MSLAB的方法引入chunk的概念,并设置chunk的默认内存空间;将RegionServer中用于维护全局的MemStroreChunkPool实例,作为chunk池;在MemStore实例中设置一个MemStoreLAB实例;当MemStore接收到KeyValue数据时,先从ChunkPool中申请一个chunk,然后将KeyValue数据存入所述chunk中;当所述chunk没有存储空间后,再新申请一个chunk;当Memstore因为刷写而释放内存时,按照chunk的预设方式清空内存。进一步,所述在RegionServer中增加并发回收器CMS包括:通过修改RegionServer中的配置文件,在年老代设置并使用并发回收器CMS。进一步,所述通过调整MSLAB参数回避与CMS的策略冲突包括:根据CMS的回收原则,在配置文件中调整每个chunk的大小chunksize和能放入chunk的最大单元格的大小mslab.max.allocation;设置在RegionServer启动的时候预分配的空chunk占整个chunkPool的比例为0.0。进一步,设置chunk的默认内存空间为2M。相应的,本专利技术还公开了一种基于HBase的朱丽叶暂停优化系统,包括:管理单元,用于使用MSLAB将RegionServer的内部缓存分为若干存储单元进行管理;设置单元,用于在RegionServer中增加并发回收器CMS;调整单元,用于通过调整MSLAB参数回避与CMS的策略冲突。进一步,所述管理单元包括:调用模块,用于调用MSLAB的方法引入chunk的概念,并设置chunk的默认内存空间;实例控制模块,用于将RegionServer中用于维护全局的MemStroreChunkPool实例,作为chunk池;实例设置模块,用于在MemStore实例中设置一个MemStoreLAB实例;数据存储模块,用于当MemStore接收到KeyValue数据时,先从ChunkPool中申请一个chunk,然后将KeyValue数据存入所述chunk中;添加模块,用于当所述chunk没有存储空间后,再新申请一个chunk;删除模块,用于当Memstore因为刷写而释放内存时,按照chunk的预设方式清空内存。进一步,所述设置单元包括:修改模块,用于通过修改RegionServer中的配置文件,在年老代设置并使用并发回收器CMS。进一步,所述调整单元包括:空间调整模块,用于根据CMS的回收原则,在配置文件中调整每个chunk的大小chunksize和能放入chunk的最大单元格的大小mslab.max.allocation;比例设置模块,用于设置在RegionServer启动的时候预分配的空chunk占整个chunkPool的比例为0.0。相应的,本专利技术还公开了一种基于HBase的朱丽叶暂停优化设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上文任一项所述基于HBase的朱丽叶暂停优化方法步骤。对比现有技术,本专利技术有益效果在于:本专利技术提供了一种基于HBase的朱丽叶暂停优化方法、系统及设备,在HBase的ReginServer的堆内存管理中,使用CMS并发回收器,进行回收的同时保证应用不会停止。同时在RegionServer中增加了HBase独有的新策略MSLAB,以memstore为最小单元的内存管理,将memstore中分为多个2MB大小chunk进行存入数据,在一个chunk放满数据后才会申请下一个chunk,减少了小碎片引起的无法插入数据的问题。又因为CMS并发回收器的作用而减少了老年代的暂停时间,从而推迟了朱丽叶暂停的来临时间的同时也减少了朱丽叶暂停的持续时间。本专利技术在Memstore中使用MSLAB策略将memstore分成chunk小块进行处理来延缓朱丽叶暂停到来的时间,同时在RegionServer的缓存中使用了CMS策略来减少老年代暂停的时间。两者无冲突结合后不仅推迟了朱丽叶暂停到来的时间,也大大减少了RegionServer进行内存重排的时间,从而防止zookeeper认定RegionServer宕机产生的RegionServer自杀现象。本专利技术主要改善了内存较大的大数据集群中HBase较长使用后RegionServer挂掉的问题,应用于目前对HBase性能有一定要求的中高内存的大数据集群的使用。由此可见,本专利技术与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。附图1是本专利技术的方法流程图。附图2是本专利技术本文档来自技高网...

【技术保护点】
1.一种基于HBase的朱丽叶暂停优化方法,其特征在于,包括:/n使用MSLAB将RegionServer的内部缓存分为若干存储单元进行管理;/n在RegionServer中增加并发回收器CMS;/n通过调整MSLAB参数回避与CMS的策略冲突。/n

【技术特征摘要】
1.一种基于HBase的朱丽叶暂停优化方法,其特征在于,包括:
使用MSLAB将RegionServer的内部缓存分为若干存储单元进行管理;
在RegionServer中增加并发回收器CMS;
通过调整MSLAB参数回避与CMS的策略冲突。


2.根据权利要求1所述的基于HBase的朱丽叶暂停优化方法,其特征在于,
所述使用MSLAB将RegionServer的内部缓存分为若干存储单元进行管理包括:调用MSLAB的方法引入chunk的概念,并设置chunk的默认内存空间;
将RegionServer中用于维护全局的MemStroreChunkPool实例,作为chunk池;
在MemStore实例中设置一个MemStoreLAB实例;
当MemStore接收到KeyValue数据时,先从ChunkPool中申请一个chunk,然后将KeyValue数据存入所述chunk中;
当所述chunk没有存储空间后,再新申请一个chunk;
当Memstore因为刷写而释放内存时,按照chunk的预设方式清空内存。


3.根据权利要求1所述的基于HBase的朱丽叶暂停优化方法,其特征在于,
所述在RegionServer中增加并发回收器CMS包括:
通过修改RegionServer中的配置文件,在年老代设置并使用并发回收器CMS。


4.根据权利要求1所述的基于HBase的朱丽叶暂停优化方法,其特征在于,
所述通过调整MSLAB参数回避与CMS的策略冲突包括:
根据CMS的回收原则,在配置文件中调整每个chunk的大小chunksize和能放入chunk的最大单元格的大小mslab.max.allocation;
设置在RegionServer启动的时候预分配的空chunk占整个chunkPool的比例为0.0。


5.根据权利要求2所述的基于HBase的朱丽叶暂停优化方法,其特征在于:设置chunk的默认内存空间为2M。


6.一种基于HBase的朱丽叶暂停优化系统,其特征在于...

【专利技术属性】
技术研发人员:康凯臧国英
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

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

1