基于任务粒度的MapReduce报表任务执行方法技术

技术编号:9853731 阅读:123 留言:0更新日期:2014-04-02 17:45
本发明专利技术涉及一种基于任务粒度的MapReduce报表任务执行方法,包括以下步骤:S10、验证数据报表任务Jobi的合法性以及优先级,将数据报表任务放入Job队列中;S20、基于最小粒度分割,依次对每一Jobi进行子任务划分,得到包含所有子任务的集合Set1;S30、去除集合Set1中重复的子任务,得到集合Set2;S40、对集合Set2中的子任务进行最大粒度合并,得到集合Set3;S50、根据hadoop即时计算能力以及集合Set3的子任务数量创建运算单元;S60、由运算单元执行集合Set3的子任务。本发明专利技术可以自适应寻找报表计算任务队列中的可复用的子任务,并执行分割和合并,有效提高计算效率。

【技术实现步骤摘要】
基于任务粒度的MapReduce报表任务执行方法
本专利技术涉及一种基于任务粒度的MapReduce报表任务执行方法。
技术介绍
在大数据时代,数据量成爆炸式增长,这导致了对数据的计算处理和有效存储提出了极高的要求。Hadoop生态圈的提出为海量数据的大规模计算和分布式可靠存储提供了一个强大的工具。在Hadoop中,MapReduce是一个为海量数据的批量分析和计算提供了一个可靠、易用、可规模化的关键组件,特别是广泛用于基于海量日志数据的报表计算。然而,在现实使用中,MapReduce框架下的报表计算任务的执行受到了Hadoop集群的处理能力以及集群内部各节点之间数据传输速度的制约,特别是在多任务执行的情况下,MapReduce任务的执行不可避免地出现竞争。针对相同数据集的报表计算任务往往有如下特点:(1)由于计算所基于的是同一个数据集,导致相同的数据可能会被多个MapReduce任务执行完全相同的读取过程,由于HadoopDistributedFileSystem的读写性能是影响MapReduce计算性能的关键因素之一,所以针对相同数据的多个报表计算任务会重复读取一个数据集导致性能下降;(2)Hadoop的MapReduce任务执行机制缺乏相应策略,现在原生的hadoop集群对于MapReduce多任务的执行没有做出任何优化,如果存在相同或者可复用的报表计算任务,该任务仍会被执行多次;(3)基于相同数据集的报表计算任务通常是基于相同的计算条件的,因此,多个报表计算任务的某些计算子任务可以被合并。现有常用方法是没有进行任何优化,导致hadoop计算性能浪费。另一个方法是使用pig或者hive等工具来优化数据报表计算过程,但是pig和hive都是基于单个任务的优化,无法对一个任务的队列进行整体优化,且pig和hive的优化取决于它们的脚本语句,对脚本编写者的要求更高。
技术实现思路
本专利技术旨在解决上述现有技术中存在的问题,提出一种基于任务粒度的MapReduce报表任务执行方法。本专利技术提出的基于任务粒度的MapReduce报表任务执行方法包括以下步骤:S10、验证数据报表任务Jobi的合法性以及优先级,将数据报表任务放入Job队列中,其中,1≤i≤K,K为所述数据报表任务的个数;S20、基于最小粒度分割,依次对每一Jobi进行子任务划分,得到包含所有子任务的集合Set1;S30、去除集合Set1中重复的子任务,得到集合Set2;S40、对集合Set2中的子任务进行最大粒度合并,得到集合Set3,其中,每一Jobi依赖于集合Set3中的若干子任务;S50、根据hadoop即时计算能力以及集合Set3的子任务数量创建运算单元;S60、由所述运算单元执行集合Set3的子任务。本专利技术提出的基于任务粒度的MapReduce报表任务执行方法可以自适应寻找报表计算任务队列中的可复用的子任务,并执行分割和合并,最大限度地利用Hadoop集群的计算能力和数据读写能力,有效地提高了计算效率。【附图说明】图1为本专利技术提出的基于任务粒度的MapReduce报表任务执行方法流程图。图2为本专利技术提出的基于任务粒度的MapReduce报表任务执行方法环境架构图。图3为本专利技术一实施例的基于任务粒度的MapReduce报表任务执行方法步骤示意图。【具体实施方式】下面结合具体实施例及附图对本专利技术作进一步详细说明。下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术的技术方案,而不应当理解为对本专利技术的限制。在本专利技术的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术而不是要求本专利技术必须以特定的方位构造和操作,因此不应当理解为对本专利技术的限制。本专利技术提供一种基于任务粒度的MapReduce报表任务执行方法,如图1所示,该方法包括以下步骤:S10、验证数据报表任务Jobi的合法性以及优先级,将数据报表任务放入Job队列中,其中,1≤i≤K,K为所述数据报表任务的个数;S20、基于最小粒度分割,依次对每一Jobi进行子任务划分,得到包含所有子任务的集合Set1;S30、去除集合Set1中重复的子任务,得到集合Set2;S40、对集合Set2中的子任务进行最大粒度合并,得到集合Set3,其中,每一Jobi依赖于集合Set3中的若干子任务;S50、根据hadoop即时计算能力以及集合Set3的子任务数量创建运算单元;S60、由所述运算单元执行集合Set3的子任务。以应用于Hadopp环境下的MapReduce框架下基于任务粒度的数据报表任务优化执行方法为例,本专利技术所公开的框架由Waitress、Manager、TaskExecutor、Worker四个模块组成,模块之间拓扑结构反映了框架的执行流程。其中,一个Mapreduce框架下的数据报表计算任务可以被分割为多个子任务,该Mapreduce任务的执行可以被分解为由这些子任务所组成的拓扑结构的执行;对于一组数据报表计算任务,先对每个数据报表计算任务执行最小粒度的分割,得到若干的子任务,然后去掉重复的子任务,接着执行最大粒度的合并,得到最终执行的子任务序列。具体地,Waitress模块负责验证数据报表任务的合法性和优先级,报告具体的任务执行进度给任务递交者;Manager模块维护了两个队列:Job队列和Task队列,任务递交者递交的MapReduce任务称为Job,经过优化后生成MapReduce任务称为Task;Manage模块一方面负责动态处理Job队列,根据Job队列的变化,动态地分割和合并相关Job,把Job队列优化为一个Task队列;TaskExecutor模块负责执行Task队列,TaskExecutor模块根据hadoop的即时计算能力动态创建多个worker,由worker负责执行一个具体的Task。优选地,可使TaskExecutor模块维护了一个缓存池TaskResultCache,其中存储了历史Task的执行结果,如果Task队列中存在一个Task,其执行结果已经被缓存在TaskResultPool中,则该Task可以避免被执行。Worker为一个负责执行task的线程或者进程,负责监视Hadoop中该Task的执行,并把Task的执行情况反馈给TaskExecutor模块。例如对于数据报表任务Job队列{Job1,Job2,…},每个Jobi都可以基于最小粒度分割被分割为一个由若干Task组成的集合Seti={taski1,taski2,…},该Jobi的执行结果为taski1,taski2,…执行结果的并集;Job队列{Job1,Job2,…}中,对所有的Jobi执行分割操作,得到若干个Task集合,基于最大粒度合并合并这些集合,得到无重复项的Task集合Setall={task1,task2,…};对集合Setall,将其划分为若干个子集Set′1,Set′2,…,任意Jobi的执行依赖于某些子集的执行,然后对于一个子集本文档来自技高网
...
基于任务粒度的MapReduce报表任务执行方法

【技术保护点】
一种基于任务粒度的MapReduce报表任务执行方法,包括以下步骤:S10、验证数据报表任务Jobi的合法性以及优先级,将数据报表任务放入Job队列中,其中,1≤i≤K,K为所述数据报表任务的个数;S20、基于最小粒度分割,依次对每一Jobi进行子任务划分,得到包含所有子任务的集合Set1;S30、去除集合Set1中重复的子任务,得到集合Set2;S40、对集合Set2中的子任务进行最大粒度合并,得到集合Set3,其中,每一Jobi依赖于集合Set3中的若干子任务;S50、根据Hadoop即时计算能力以及集合Set3的子任务数量创建运算单元;S60、由所述运算单元执行集合Set3的子任务。

【技术特征摘要】
1.一种基于任务粒度的MapReduce报表任务执行方法,包括以下步骤:S10、验证数据报表任务Jobi的合法性以及优先级,将数据报表任务放入Job队列中,其中,1≤i≤K,K为所述数据报表任务的个数;S20、基于最小粒度分割,依次对每一Jobi进行子任务划分,得到包含所有子任务的集合Set1;S30、去除集合Set1中重复的子任务,得到集合Set2;S40、对集合Set2中的子任务进行最大粒度合并,得到集合Set3,其中,每一Jobi依赖于集合Set3中的若干子任务,所述最大粒度合并具体为:找出jobi中多次同时出现的多个子任务或在jobi中同时出现只出现一次的多个子任务,并将所述多个子任务分别进行合并;S50、根据Hadoop即时计算能力以及集合Set3的子任务数量创建运算单元;S60、由所述运算单元执行集合Set3的子任务。2.根据权利要求1...

【专利技术属性】
技术研发人员:邹瑜斌张帆白雪闫茜须成忠
申请(专利权)人:深圳先进技术研究院
类型:发明
国别省市:广东;44

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

1