一种基于HBase数据库的海量数据快速导入方法

文档序号:6649109阅读:601来源:国知局
一种基于HBase数据库的海量数据快速导入方法【专利摘要】提出一种基于HBase的海量数据快速导入方法,基于HBase数据库中表的格式,对数据源中的数据进行拆分;基于数据源中数据量的大小和HBase数据库中行键的设计,在建立所述表的时候进行预分区;设置HBase数据库的预写日志系统,关闭自动提交功能,设置缓存大小;启用多线程,将所述数据导入HBase数据库的表中。所述方法不需要对数据源进行预处理,方便操作,提高了效率。【专利说明】一种基于HBase数据库的海量数据快速导入方法【
技术领域
】[0001]本发明涉及大数据处理【
技术领域
】,具体涉及一种基于HBase的海量数据快速导入方法。【
背景技术
】[0002]随着人类社会全面进入信息时代,数据成为与水、石油同等重要的战略资源。通过挖掘海量数据,能够使政府和企业的运行决策建立在更加科学的依据基础上,提高决策效率、危机应对能力和公共服务水平。大数据(bigdata),或称巨量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到擷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。大数据分析相比于传统的数据仓库应用,具有数据量大、查询分析复杂等特点。大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘电网、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。[0003]HBase是一个分布式的、面向列的开源数据库,该技术来源于FayChang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。HBase(HadoopDatabase)是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。HBase在处理大数据问题上拥有很大优势,越来越多的实际应用将迀移到HBase中。但是,传统的数据源与HBase存在一定差异,如何将传统数据导入至HBase成为一个棘手问题。【
发明内容】[0004]为了解决上述现有技术中存在的问题,本发明提出一种基于HBase的海量数据快速导入方法,包括:[0005]S1.基于HBase数据库中表的格式,对数据源中的数据进行拆分;[0006]S2.基于数据源中数据量的大小和HBase数据库中行键的设计,在建立所述表的时候进行预分区;[0007]S3.设置HBase数据库的预写日志系统,关闭自动提交功能,设置缓存大小;[0008]S4.启用多线程,将所述数据导入HBase数据库,流程结束。[0009]特别地:[0010]根据所述数据的重要性设置所述预写日志系统,若所述数据非常重要,则将所述预写日志系统设置为不关闭,若所述数据不重要,则将所述预写日志系统设置为关闭。[0011]特别地:[0012]根据实现所述HBase数据库的计算机硬件性能设置所述缓存大小。[0013]特别地:[0014]根据所述计算机硬件的中央处理单元CPU性能,或内存大小确定需要启动的所述线程的数量。[0015]本发明的有益效果是:不需要对数据源进行预处理,方便操作,提高了效率。本发明实现为java类,调用了Hadoop和HBase中的基类,在大量实验的基础上,通过控制变量方法,得出了一套最高效快速的导入数据方法。通过关闭预写日志系统(WAL)该功能主要用于持久化数据,保证异常情况下可以恢复数据,关闭自动提交功能(AutoFlush),调优自动提交缓存大小(AutoFlushSize),多线程插入,预分区域(Reg1n)等进行优化。经过实验表明,从文本中导入HBase大约IG数据¢000000条),未采取任何优化的情况下大约需要200分钟,采用该方法大约需要15分钟,性能提升了12倍。【专利附图】【附图说明】[0016]图1本发明提出方法的流程示意图;[0017]图2为本发明提出的HBase预分区示意图。【具体实施方式】[0018]下面结合附图对本发明提出的技术方案进行详细说明。[0019]参见图1,其示出了本发明提出的方法流程图,包括:[0020]1.分析数据源格式,进行数据清洗[0021]将数据拆分,对应HBase中的表结构,方便插入。[0022]2.划分预分区Reg1n[0023]参见图2,其示出了本发明提出的预分区示意图。根据数据源的大小,行键(Rowkey)的设计,在建表时候进行预分区。[0024]3.关闭预写日志系统WAL,关闭自动提交功能AutoFlush,设置缓存大小BufferSize。此步骤根据实际情况进行,如果数据非常重要则不要关闭WAL,同时调整BufferSize需要根据自己计算机的硬件条件。[0025]4.启用多线程[0026]根据第二步中对数据源的掌握,合理启动线程数量,进行数据导入。线程分配时,需要根据物理主机的性能,例如CPU,内存大小。【权利要求】1.一种基于HBase的海量数据快速导入方法,包括:51.基于HBase数据库中表的格式,对数据源中的数据进行拆分;52.基于数据源中数据量的大小和HBase数据库中行键的设计,在建立所述表的时候进行预分区;53.设置HBase数据库的预写日志系统,关闭自动提交功能,设置缓存大小;54.启用多线程,将所述数据导入HBase数据库的表中,流程结束。2.如权利要求1所述的方法,其特征在于:根据所述数据的重要性设置所述预写日志系统,若所述数据非常重要,则将所述预写日志系统设置为不关闭,若所述数据不重要,则将所述预写日志系统设置为关闭。3.如权利要求1所述的方法,其特征在于:根据实现所述HBase数据库的计算机硬件性能设置所述缓存大小。4.如权利要求1所述的方法,其特征在于:根据所述计算机硬件的中央处理单元CPU性能和/或内存大小,确定需要启动的所述线程的数量。【文档编号】G06F17/30GK104516985SQ201510020951【公开日】2015年4月15日申请日期:2015年1月15日优先权日:2015年1月15日【发明者】范荣盛,辛国茂,赵仁明,金洪殿申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1