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

技术编号:15724878 阅读:76 留言:0更新日期:2017-06-29 11:25
本发明专利技术涉及一种基于HDFS海量数据快速导入HBase的方法,其特征在于,包括以下步骤:步骤1:从数据源提取数据并以流的方式上传到HDFS;步骤2:用编程模型对数据进行筛选运算和处理,生成HBase的底层数据存储的文件HFile;步骤3:判断HBase数据库中是否有HBase表;若没有,在HBase数据库建HBase表,并在建表时对所建的HBase表进行预分区,若有,执行步骤4;步骤4:将文件在HDFS上的位置传递给区域服务器Region Servers,利用Region Server将数据导入到相应分区目录下,完成与HBase表的关联,实现数据导入。

【技术实现步骤摘要】
一种基于HDFS海量数据快速导入HBase的方法
本专利技术属于数据处理
,具体涉及一种基于HDFS海量数据快速导入HBase的方法。
技术介绍
在社会快速发展的今天,各行各业每天都会产生大量的数据,数据来源囊括了我们周围可以捕获的任何类型数据,网站、社交媒体、交易型商业数据以及其它商业环境中创建的数据。面对海量数据,将数据进行快速存储利用尤为重要,可以使用编程模型MapReduce直接向HBase导入数据,但海量的数据集会使得MapReduceJob作业也变得很繁重。若处理不当,则可能使得MapReduce的job运行时的吞吐量很小,也可以使用HBase的API中的Put方法,用法也很容易学习和操作,但针对大部分情况,它并非都是最高效的方式。当需要将海量数据在规定时间内载入HBase中时,效率问题体现得尤为明显。
技术实现思路
本专利技术的目的在于,针对上述现有技术存在的缺陷,提供设计一种基于HDFS海量数据快速导入HBase的方法,以解决上述技术问题。为了达到上述目的,本专利技术提供的技术方案为:一种基于HDFS海量数据快速导入HBase的方法,其特征在于,包括以下步骤:步骤1:从数据源提取数据并以流的方式上传到HDFS;步骤2:用编程模型对数据进行筛选运算和处理,生成HBase的底层数据存储的文件HFile;步骤3:判断HBase数据库中是否有HBase表;若没有,在HBase数据库建HBase表,并在建表时对所建的HBase表进行预分区,若有,执行步骤4;步骤4:将文件在HDFS上的位置传递给区域服务器RegionServers,利用RegionServer将数据导入到相应分区目录下,完成与HBase表的关联,实现数据导入。步骤2的实现过程为:用编程模型MapReduce作业准备数据,第一个作业运行业务处理逻辑,处理结果写入到HDFS上的中间目录下,第二个作业以第一个作业的输出作为输入,生成HBase的底层数据存储的文件HFile。编程模型MapReduce作业使用行键作为输出Key,KeyValue或者Put作为输出Value类型,当导入的数据有多列时使用Put,只有一个列时使用KeyValue。创建表时对表进行预分区,设置Reduce数等于分区数Region,分区时利用每个分区的端值startKey、endKey进行行键区间划分。根据对象的行主键确定对象所述的区域服务器。数据源包括文本文件或其他数据库。建HBase表的同时建对应的索引表,将HBase表中涉及条件过滤的字段和行键在Solr搜索应用服务器中建立索引,通过Solr的多条件查询快速获得符合过滤条件的行键值,根据此行键关联HBase表行键,在HBase表的Region查找所需数据。本专利技术的有益效果在于,利用MapReduce作业输出HBase的内部数据存储格式文件,然后将生成的数据文件直接与HBase表做关联,实现数据导入。与使用HBaseAPI相比,使用本专利技术方式导入数据占用更少的CPU和网络资源;实现方法高效便捷,在导入过程不占用Region资源,而且在大数据写入时能极大的提高写入效率,提高了Job的运行速度,节省内存。此外,本专利技术设计原理可靠,结构简单,具有非常广泛的应用前景。由此可见,本专利技术与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。附图说明图1为一种基于HDFS海量数据快速导入HBase的方法结构框图。图2为建立HBase表对应索引的流程图。具体实施方式下面结合附图并通过具体实施例对本专利技术进行详细阐述,以下实施例是对本专利技术的解释,而本专利技术并不局限于以下实施方式。如图1所示,本实施例提供的一种基于HDFS海量数据快速导入HBase的方法,包括以下步骤:步骤1:从数据源提取数据并以流的方式上传到HDFS;步骤2:用编程模型对数据进行筛选运算和处理,生成HBase的底层数据存储的文件HFile;步骤3:判断HBase数据库中是否有HBase表;若没有,在HBase数据库建HBase表,并在建表时对所建的HBase表进行预分区,若有,执行步骤4;步骤4:将文件在HDFS上的位置传递给区域服务器RegionServers,利用RegionServer将数据导入到相应分区目录下,完成与HBase表的关联,实现数据导入。步骤2的实现过程为:用编程模型MapReduce作业准备数据,第一个作业运行业务处理逻辑,处理结果写入到HDFS上的中间目录下,第二个作业以第一个作业的输出作为输入,生成HBase的底层数据存储的文件HFile。编程模型MapReduce作业使用行键作为输出Key,KeyValue或者Put作为输出Value类型,当导入的数据有多列时使用Put,只有一个列时使用KeyValue。创建表时对表进行预分区,设置Reduce数等于分区数Region,分区时利用每个分区的端值startKey、endKey进行行键区间划分。根据对象的行主键确定对象所述的区域服务器。数据源包括文本文件或其他数据库。建HBase表的同时建对应的索引表,将HBase表中涉及条件过滤的字段和行键在Solr搜索应用服务器中建立索引如图2所示,通过Solr的多条件查询快速获得符合过滤条件的行键值,根据此行键关联HBase表行键,在HBase表的Region查找所需数据。以上公开的仅为本专利技术的优选实施方式,但本专利技术并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本专利技术原理前提下所作的若干改进和润饰,都应落在本专利技术的保护范围内。本文档来自技高网...
一种基于HDFS海量数据快速导入HBase的方法

【技术保护点】
一种基于HDFS海量数据快速导入HBase的方法,其特征在于,包括以下步骤:步骤1:从数据源提取数据并以流的方式上传到HDFS;步骤2:用编程模型对数据进行筛选运算和处理,生成HBase的底层数据存储的文件HFile;步骤3:判断HBase数据库中是否有HBase表;若没有,在HBase数据库建HBase表,并在建表时对所建的HBase表进行预分区,若有,执行步骤4;步骤4:将文件在HDFS上的位置传递给区域服务器Region Servers,利用Region Server将数据导入到相应分区目录下,完成与HBase表的关联,实现数据导入。

【技术特征摘要】
1.一种基于HDFS海量数据快速导入HBase的方法,其特征在于,包括以下步骤:步骤1:从数据源提取数据并以流的方式上传到HDFS;步骤2:用编程模型对数据进行筛选运算和处理,生成HBase的底层数据存储的文件HFile;步骤3:判断HBase数据库中是否有HBase表;若没有,在HBase数据库建HBase表,并在建表时对所建的HBase表进行预分区,若有,执行步骤4;步骤4:将文件在HDFS上的位置传递给区域服务器RegionServers,利用RegionServer将数据导入到相应分区目录下,完成与HBase表的关联,实现数据导入。2.根据权利要求1所述的一种基于HDFS海量数据快速导入HBase的方法,其特征在于,步骤2的实现过程为:用编程模型MapReduce作业准备数据,第一个作业运行业务处理逻辑,处理结果写入到HDFS上的中间目录下,第二个作业以第一个作业的输出作为输入,生成HBase的底层数据存储的文件HFile。3.根据权利要求1所述的一种基于HDFS海量数据快速导入HBase的方法,其特征在于,创建表时对表进行预分区,设置Reduce数等于分区数Region。4.根据权利要求2所述的一种基于HDF...

【专利技术属性】
技术研发人员:乔晋伟
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1