一种批量合并hbase表regions的方法【专利摘要】本发明公开了一种批量合并hbase表regions的方法,涉及大数据【
技术领域:
】,通过获取hbase表的regionname列表,实现导出各个hbase表的regions的名称列表,保存为与表名同名的文本文件;通过修改hbase脚本,添加配置文件路径;通过执行脚本merge.sh,merge.sh脚本轮询每个regions的名称列表,将两个相邻region进行merge,达到批量合并的目的。该方法在大数据平台基础上,将hbase表的大量regions进行批量合并,解决因预分规则不恰当或初始regionsize过小而导致的空region、小region、split过于频繁,以及打开文件数过多等问题,提高了系统的稳定性和应用程序的效率。【专利说明】—种批量合并hbase表reg1ns的方法【
技术领域:
】[0001]本发明涉及大数据【
技术领域:
】,具体地说是一种批量合并hbase表reg1ns的方法。【
背景技术:
】[0002]HBase是一个分布式的、面向列的开源数据库,是hadoop集群的最常见数据库,适合于非结构化、海量数据的存储。HBase能够方便的扩展列族和列,以增加存储信息;也可以方便的横向扩展节点,以增加计算和存储能力。这种便利也带来一些问题,最常见的就是初始设置reg1nsize过小,或者对某个表的reg1n预分规则不恰当,出现空reg1n、小reg1n.split过于频繁,以及打开文件数超出系统上限等问题,影响进程运行效率,严重时会导致系统崩溃。为解决这写问题,就必须要对reg1n进行merge操作。但是HBase提供的merge命令一次只能对两个reg1n进行合并,这对已存在TB级数据的HBase是很难手工进行的。【
发明内容】[0003]本发明针对现有技术存在的不足之处,提供了一种对列式数据库hbase的reg1ns进行批量合并的方法。[0004]本发明所述一种批量合并hbase表reg1ns的方法,解决上述技术问题采用的技术方案如下:所述批量合并hbase表reg1ns的方法,首先获取hbase表的reg1nname列表,然后修改hbase脚本,最后执行根据reg1nname列表对reg1n进行合并的脚本merge,sh,进行合并reg1ns的脚本merge,sh,以完成批量合并hbase表的reg1ns。[0005]通过第一步获取hbase表的reg1nname列表,实现导出各个hbase表的reg1ns的名称列表,保存为与表名同名的文本文件,供下一步合并使用;通过第二步修改hbase脚本,添加配置文件路径;通过第三步执行脚本merge,sh,merge,sh脚本轮询每个reg1ns的名称列表,将两个相邻reg1n进行merge(合并),达到批量合并的目的。[0006]本发明所述一种批量合并hbase表reg1ns的方法与现有技术对比具有的有益效果:该批量合并hbase表reg1ns的方法在大数据平台基础上,将hbase表的大量reg1ns(分区)进行批量合并,解决因预分规则不恰当或初始reg1nsize过小而导致的空reg1n、小reg1n、split过于频繁,以及打开文件数过多等问题,避免因reg1nsize过小或reg1ns数过多造成的系统崩溃和应用程序效率低,提高了系统性能,有效解决了hbase表加载异常的问题。【专利附图】【附图说明】[0007]附图1为本实施例所述安全云存储层的结构框图。【具体实施方式】[0008]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的一种批量合并hbase表reg1ns的方法进行详细说明。[0009]本发明所述一种批量合并hbase表reg1ns的方法,主要包括三个步骤:第一步是获取hbase表的reg1nname列表;第二步,修改hbase脚本;第三步是执行脚本merge,sh;通过第一步,实现导出各个hbase表的reg1ns的名称列表,保存为与表名同名的文本文件,供下一步合并使用;通过第二步修改hbase脚本,添加配置文件路径;通过第三步执行脚本merge,sh,merge,sh脚本轮询每个reg1ns的名称列表,将两个相邻reg1n进行merge,达到批量合并的目的。[0010]实施例:下面通过一个实施例,对本发明所述一种批量合并hbase表reg1ns的方法的优点和设计内容,进行详细说明。[0011]本实施例所述批量合并hbase表reg1ns的方法,首先获取hbase表的reg1nname列表,然后修改hbase脚本,最后执行根据reg1nname列表对reg1n进行合并的脚本merge,sh,进行合并reg1ns的脚本merge,sh,以完成批量合并hbase表的reg1ns。[0012]本实施例所述批量合并hbase表reg1ns的方法中,所述获取hbase表的reg1nname列表包括:启动HBase,在浏览器中打开hbase监控页面http://master:60010/,打开要merge的表,进入相应框面http://master:60010/table.jsp?name=dangdang。新建一个excel文件,从“数据”菜单中选择“自网站”,将上面打开的表的url复制到地址输入框中,选中“TableReg1ns”表,导入到excel中。然后将Name下面的所有值复制黏贴到文本文件中,以表名为文件名(不要扩展名)保存。将所有需要merge的表执行上面的操作。并将所有文件上传到集群的master服务器上。[0013]本实施例所述批量合并hbase表reg1ns的方法中,所述修改hbase脚本包括:在hbase命令脚本中添加:exportHAD00P_CONF_DIR=/bigdata/hadoop/confCLASSPATH=${CLASSPATH}:$HAD00P_C0NF_DIR.。[0014]本实施例所述批量合并hbase表reg1ns的方法中,所述执行脚本merge,sh的具体内容如下:#!/bin/bashecho##stop-hbase...##/bigdata/hbase/bin/stop-hbase.sh#从参数I中获取reg1nname列表文件所在目录inputDir=$linputDir='cd〃$inputDir"}/dev/null;pwd'#对目录下的每个文件进行下面操作forfin'lsSinputDir';do#取出表名【权利要求】1.一种批量合并hbase表reg1ns的方法,其特征在于,主要包括三个步骤:第一步,获取hbase表的reg1nname列表;第二步,修改hbase脚本;第三步是执行脚本merge,sh;通过第一步,导出各个hbase表的reg1ns的名称列表,保存为与表名同名的文本文件,供下一步合并使用;通过第二步修改hbase脚本,添加配置文件路径;通过第三步,执行根据reg1nname列表对reg1n进行合并的脚本merge,sh,merge,sh脚本轮询每个reg1ns的名称列表,将两个相邻reg1n进行merge,完成批量合并。2.根据权利要求1所述的一种批量合并hbase表reg1ns的方法,其特征在于,所述获取hbase表的reg1nname列表的具体内容包括:启动HBase,在浏览器中打开hbase监控页面,打开要merge的表,进入相应框面;新建一个excel文件,从“数据”菜单中选择“自网站”,将上面打开的表的url复制到地址输入框中,选中“TableReg1ns”表,导入到excel中;然后将Name下面的所有值复制黏贴到文本文件中,以表名为文件名进行保存;将所有需要merge的表执行上面的操作,并将所有文件上传到集群的master服务器上。3.根据权利要求2所述的一种批量合并hbase表reg1ns的方法,其特征在于,所述修改hbase脚本是指:在hbase命令脚本中添加:exportHADOOP_CONF_DIR=/bigdata/hadoop/confCLASSPATH=${CLASSPATH}:$HADOOP_CONF_DIR。4.根据权利要求3所述的一种批量合并hbase表reg1ns的方法,所述执行脚本merge,sh的具体过程如下:【文档编号】G06F9/44GK104199901SQ201410427005【公开日】2014年12月10日申请日期:2014年8月27日优先权日:2014年8月27日【发明者】范莹,于治楼,梁华勇申请人:浪潮集团有限公司