为Hbase数据库上运行的MapReduce分配Map task的方法及装置制造方法及图纸

技术编号:13739900 阅读:52 留言:0更新日期:2016-09-22 16:23
本发明专利技术提供一种为Hbase数据库上运行的MapReduce分配Map的方法及装置,用以解决目前由于大量数据集中于少数几个map task中,导致任务效率低的问题,该方法包括:将Hbase数据库的主键Rowkey所标识的范围划分成多个区间;为每个区间分配一个预先创建的扫描scan对象;在MapReduce运行时为每个scan对象分配一个Map task,该方案提高了程序运行的效率。

【技术实现步骤摘要】

本专利技术涉及通讯领域,特别是涉及一种为Hbase数据库上运行的MapReduce分配Map task的方法及装置
技术介绍
Hadoop是目前业界使用最多,最成熟的开源大数据存储和计算平台,它包含了很多组件,其中MapReduce(简称MR)是hadoop平台上的编程模型,适用于大数据量下的分布式计算。HBase是一个开源的非关系型分布式数据库(NoSQL),它运行于HDFS(Distributed File System,Hadoop分布式文件系统)文件系统之上,为Hadoop提供类似于BigTable(大规模分散数据库)规模的服务,Hbase的jar包里提供了API(Application Programming Interface,应用程序编程接口),可以使用MapReduce来读取或者写Hbase。其中,TableInputFormatBase类提供了对表数据的大部分操作,其子类TableInputFormat则提供用于处理表数据并生成键值对的功能,TableInputFormat类将数据表按照Region分割成split,既有多少个Region就有多个split。在MR job中每个split对应一个map task,据官方网站介绍,map task的数量即mapred.map.tasks的参数值,用户不能直接设置这个参数。在hbase上进行MR统计时,由于大量数据集中于少数几个map中,导致任务效率低、运行时间长,以及单个map task(map task的数量即mapred.map.tasks的参数值,用户不能直接设置这个参数),占用资源多,容易失败等弊端。
技术实现思路
本专利技术提供一种为Hbase数据库上运行的MapReduce分配Map task的方法及装置,用以解决目前由于大量数据集中于少数几个Map task中,导致任务效率低的问题。根据本专利技术的一个方面,提供了一种为Hbase数据库上运行的MapReduce分配Map task的方法,包括:将Hbase数据库的主键Rowkey所标识的范围划分成多个区间;为每个区间分配一个预先创建的扫描scan对象;在MapReduce运行时为每个scan对象分配一个Map task。其中,将Hbase数据库的主键Rowkey所标识的范围划分成多个区间,包括:将Rowkey所标识的范围平均划分成多个连续的区间。进一步的,上述方法还包括:在Rowkey所标识的范围划分成多个区间之前,创建第一scan对象;为第一scan对象设置共用属性;在Rowkey所标识的范围划分成多个区间之后,以第一scan对象为副本创建与区间对应的第二scan对象,并将区间的开始与结束位置参数加入到第二scan对象中。其中,将Hbase数据库的主键Rowkey所标识的范围划分成多个区间,包括:将Rowkey划分为接收到的外部输入的数目或预设的数目个连续的区间。进一步的,上述方法还包括:在为每个区间分配一个预先创建的scan对象之后,将分配的所有scan对象提交给MapReduce;当在Hbase上进行MapReduce统计时,根据统计到的scan对象的数量确定同时执行的Map task的数量。根据本专利技术的第二个方面,提供了一种为Hbase数据库上运行的MapReduce分配Map task的装置,包括:划分模块,用于将Hbase数据库的主键Rowkey所标识的范围划分成多个区间;第一分配模块,用于为每个区间分配一个预先创建的扫描scan对象;第二分配模块,用于在MapReduce运行时为每个scan对象分配一个Map task。其中,上述划分模块具体用于:将Rowkey所标识的范围平均划分成多个连续的区间。进一步的,上述装置还包括:第一创建模块,用于在将Rowkey所标识的
范围划分成多个区间之前,创建第一scan对象;设置模块,用于为第一scan对象设置共用属性;第二创建模块,用于在将Rowkey所标识的范围划分成多个区间之后,以第一scan对象为副本创建与区间对应的第二scan对象,并将区间的开始与结束位置参数加入到第二scan对象中。其中,上述划分模块具体用于:将Rowkey划分为接收到的外部输入的数目或预设的数目个连续的区间。进一步的,上述装置还包括:提交模块,用于在为每个区间分配一个预先创建的scan对象之后,将分配的所有scan对象提交给MapReduce;确定模块,用于当在Hbase上进行MapReduce统计时,根据统计到的scan对象的数量确定同时执行的Map task的数量。本专利技术有益效果如下:本实施例提供的方法,对Hbase数据库的主键Rowkey所标识的范围划分为多个区间,并为每个区间创建一个scan对象,在MapReduce运行时为每个scan对象分配一个Map task,使得Map task的数量增加,从而在Map阶段可以实现多个Map task并行执行,使得Map阶段的时间被大幅度缩短,进而提高了效率。附图说明图1是本专利技术实施例1中提供的为Hbase数据库上运行的MapReduce分配Map task的方法的流程图;图2是本专利技术实施例2中提供的为Hbase数据库上运行的MapReduce分配Map task的方法的流程图;图3是本专利技术实施例3中提供的为Hbase数据库上运行的MapReduce分配Map task的装置的结构框图。具体实施方式为了解决现有技术由于大量数据集中于少数几个Map task中,导致任务效率低的问题的问题,本专利技术提供了一种为Hbase数据库上运行的MapReduce分配Map task的方法及装置,以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。实施例1本实施例提供了一种为Hbase数据库上运行的MapReduce分配Map task的方法,该方法用于为Hbase数据库上运行的mapreduce程序分配Map task的数量,图1是该方法的流程图,如图1所示,该方法包括如下步骤:步骤101:将Hbase数据库的主键Rowkey所标识的范围划分成多个区间;步骤102:为每个区间分配一个预先创建的scan对象;其中,scan是在Hbase数据中进行查询时所用的数据结构,其中指定了查询的起始和结束位置。步骤103:在MapReduce运行时为每个scan对象分配一个Map task。其中,Map(映射)Reduce(归纳)是hadoop平台上的编程模型,用于大规模数据集(大于1TB)的并行运算,其中,Map task是用来把一组键值对映射成一组新的键值对。其中,将Hbase数据库的主键Rowkey所标识的范围划分成多个区间,具体可以包括:将Hbase数据库的主键Rowkey所标识的范围平均划分成多个连续的区间;或更进一步的包括:将Rowkey划分为接收到的外部输入的数目或预设的数目个连续的区间,即,划分后的区间个数可以通过预设经验值或用户输入指定的数值来确定。其中,在上述步骤101至103的基础上,上述方法还可以进一步包括:在将Hbase数据库的主键Rowkey所标识的范围划分成多个区间之前,创建第一scan对象;为该第一scan对象设本文档来自技高网
...

【技术保护点】
一种为Hbase数据库上运行的MapReduce分配Map task的方法,其特征在于,包括:将Hbase数据库的主键Rowkey所标识的范围划分成多个区间;为每个所述区间分配一个预先创建的扫描scan对象;在MapReduce运行时为每个所述scan对象分配一个Map task。

【技术特征摘要】
1.一种为Hbase数据库上运行的MapReduce分配Map task的方法,其特征在于,包括:将Hbase数据库的主键Rowkey所标识的范围划分成多个区间;为每个所述区间分配一个预先创建的扫描scan对象;在MapReduce运行时为每个所述scan对象分配一个Map task。2.根据权利要求1所述的方法,其特征在于,所述将Hbase数据库的主键Rowkey所标识的范围划分成多个区间,包括:将所述Rowkey所标识的范围平均划分成多个连续的区间。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在将所述Rowkey所标识的范围划分成多个区间之前,创建第一scan对象;为所述第一scan对象设置共用属性;在将所述Rowkey所标识的范围划分成多个区间之后,以所述第一scan对象为副本创建与所述区间对应的第二scan对象,并将所述区间的开始与结束位置参数加入到所述第二scan对象中。4.根据权利要求1所述的方法,其特征在于,所述将Hbase数据库的主键Rowkey所标识的范围划分成多个区间,包括:将所述Rowkey划分为接收到的外部输入的数目或预设的数目个连续的区间。5.根据权利要求1至4任意一项所述的方法,其特征在于,所述方法还包括:在为每个所述区间分配一个预先创建的scan对象之后,将分配的所有scan对象提交给所述MapReduce;当在Hbase上进行MapReduce统计时,根据统计到的scan对象的数量确定同时执行的Map task的数量。6.一种为Hbas...

【专利技术属性】
技术研发人员:戚永峰
申请(专利权)人:海尔优家智能科技北京有限公司
类型:发明
国别省市:北京;11

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

1