CN106844054A - 一种Hadoop MapReduce的优化方法 - Google Patents

一种Hadoop MapReduce的优化方法 Download PDF

Info

Publication number
CN106844054A
CN106844054A CN201710052152.XA CN201710052152A CN106844054A CN 106844054 A CN106844054 A CN 106844054A CN 201710052152 A CN201710052152 A CN 201710052152A CN 106844054 A CN106844054 A CN 106844054A
Authority
CN
China
Prior art keywords
task
tasks
mapreduce
job
setup
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710052152.XA
Other languages
English (en)
Inventor
杜江
王鹏
胡建斌
牟洋
常亚翠
颜骏
胡彦婷
李明建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University of Post and Telecommunications
Original Assignee
Chongqing University of Post and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN201710052152.XA priority Critical patent/CN106844054A/zh
Publication of CN106844054A publication Critical patent/CN106844054A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及一种Hadoop MapReduce的优化方法,属于计算机应用技术领域。一个作业的生命周期中有三个任务,包括setup任务、MapReduce任务和cleanup任务,将setup任务与clean任务合并进MapReduce任务,在一个作业在完成初始化时,直接启动MapReduce任务;即在map端首先执行setup任务,进行作业环境的创建,在reduce端最后执行clean任务,清理临时目录。本发明通过分析MapReduce框架内部的作业执行过程,对执行过程中的环境准备和清理做了优化,有效的节约了至少4个心跳周期的时间,实现了MapReduce作业执行性能的优化。

Description

一种Hadoop MapReduce的优化方法
技术领域
本发明属于计算机应用领域,涉及一种Hadoop MapReduce的优化方法。
背景技术
Hadoop是一个由Apache基金会开发的分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,开发分布式程序。
Hadoop MapReduce并行计算框架构建于Hadoop分布式文件系统(HDFS)之上,包含一个主节点和若干从节点,核心节点是JobTracker,功能是负责任务调度,管理作业,TaskTracker是任务节点,负责执行JobTracker分发过来的任务。
作业和任务是并行计算框架的两个重要概念,下面先介绍一下作业执行的状态转换过程以及任务的时序流程。
在目前的Hadoop MapReduce执行框架中,作业初始状态从NEW开始,继而进入PREP.INTIALIZIN状态进行初始化,目的是为了读取输入数据的数据块描述信息,并创建所有的map和reduce任务,初始化成功后,进入PREP.INTIALIZED状态,此时,一个特殊的setup任务启动,此任务的作用是创建作业的运行环境,然后作业进入RUNNING阶段,在此阶段,作业不会立即被处理,而是处在RUNNING.WAIT状态等待被调度,被调度后,任务才开始执行,此时作业进入RUNNING.TASK状态,真正的进行任务处理,当所有的map和reduce任务完成以后,作业进入RUNNING.SUC.WAIT状态,此时,另一个特殊的cleanup任务启动,此任务的目的是清理作业的运行环境,然后作业进入结束阶段,下图是作业的状态转换图,图中的每个状态下,作业都有可能被用户主动杀死,进入KILLED状态,也有可能在执行任务的过程中因为种种原因失败,进入FAILED状态。
任务(Task)是Hadoop MapReduce框架进行并行化计算的基本单位,Task的整个生存周期是我们所要分析的重要对象,在框架的实现中,两端分别对应TaskInProgress和TaskTracker.TaskInProgress两个对象,当一个作业被提交到Hadoop系统的时,JobTracker对作业进行初始化,此时作业内的任务被全部创建好,等待TaskTracker来请求任务,我们可以简单分析一下task的生命周期。
JobTracker接受任务时,创建TaskInProgress,此时Task处于UNASSIGNED状态,TaskTracker经过一个心跳周期后请求分配任务,待JobTracker收到请求后分配一个TaskInProgress任务给TaskTracker,这是第一次心跳通信。
TaskTracker收到任务后创建TaskTracker.TaskInProgress对象,并启动Chi ld进程来执行任务,此时TaskTracker将任务状态更新为RUNNING。
再过一个心跳周期,Task向JobTracker报告Task状态的改变,JobTracker也将状态更新为RUNNING,此为第二次心跳周期,任务执行期间TaskTracker还会周期性的向JobTracker发送心跳信息,在任务执行完之后,TaskTracker会将状态变为CMMIT_PENDING,发送给JobTracker。
JobTracker收到消息后,会返回确认消息,表示允许提交,此时TaskTracker会将结果提交,并把任务装态更新为SUCCEEDED,再过一个周期,TaskTracker再次发送心跳消息,JobTracker也将任务状态更新为SUCCEEDED,至此,一个任务的生命周期结束。
分析作业的状态转换过程,我们可以看出一个作业的生命周期中,有三个任务,在执行所有的常规任务之前,会先执行一个setup任务,之后执行正常的MapReduce任务,在所有的任务执行完成之后,会执行一个cleanup任务。根据任务的生命周期我们可以知道setup任务的执行必须经过分配任务和报告完成任务至少两个心跳周期,同样的,cleanup任务至少也会消耗两个心跳周期,这就大大增加了系统的运行时间,setup任务和cleanup任务消耗的心跳周期会直接影响整个系统的性能。
发明内容
有鉴于此,本发明的目的在于提供一种Hadoop MapReduce的优化方法,将setup任务和cleanup任务合并MapReduce任务中,至少减少四个心跳周期,从而提高执行效率。
为达到上述目的,本发明提供如下技术方案:
一种Hadoop MapReduce的优化方法,一个作业的生命周期中有三个任务,包括setup任务、MapReduce任务和cleanup任务,将setup任务与clean任务合并进MapReduce任务,在一个作业在完成初始化时,直接启动MapReduce任务;即在map端首先执行setup任务,进行作业环境的创建,在reduce端最后执行clean任务,清理临时目录;然后作业结束,实现作业状态的优化。
进一步的,所述在在map端首先执行setup任务,在reduce端最后执行clean任务的实现方法为:在MapTask类中添加一个“setupJob()”方法,在ReduceTask类中添加一个“cleanJob()”方法,在Map任务的最开始阶段调用Task类的“runJobSetupTask()”方法,在reduce任务的最后阶段调用Task类的“runJobCleanupTask()”方法。
本发明的有益效果在于:通过分析MapReduce框架内部的作业执行过程,对执行过程中的环境准备和清理做了优化,合并setup任务与cleanup任务,有效的节约了至少4个心跳周期的时间,实现了MapReduce作业执行性能的优化。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为优化前的作业状态转化图;
图2为优化后的作业状态转化图。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
参照图1优化前的作业状态图,一个作业的生命周期中有三个任务,包括setup任务、MapReduce任务和cleanup任务,根据任务的生命周期我们可以知道setup任务的执行必须经过一下两个步骤:
分配setup任务,经过一个心跳周期,待JobTracker收到TaskTracker的任务请求,则将setup任务分发给TaskTracker
Setup任务完成,TaskTracker执行完setup任务后,通过心跳信息向JobTracker报告完成信息,这是第二次心跳通信
补充一点,在任务执行过程中,TaskTracker还会周期性的向JobTracker发送心跳信息,但是以上两个心跳信息不可避免,是一定存在的。
同样的,cleanup任务至少也会消耗两个心跳周期,心跳消息除了包含有任务请求信息只玩,还包含任务执行状态,节点信息等内容。在标准的Hadoop系统中,少于100个节点的心跳周期为3s,当集群大于100个节点后,每多100个节点,心跳周期增加1s。由此可以计算出,setup任务与cleanup任务至少花费了12s的时间,虽然12s时间不算长,但如果对于一个执行时间为1min的段作业而言,整个作业环境的创建与清理就花销了20%左右的比例,这对系统的性能还是有相当大的影响。
通过分析Hadoop的源码,我们发现setup的主要任务是创建一个临时的输出目录,而cleanup任务是为了删除该目录。这两项任务本身的耗时并不长,真正消耗时间的是JobTracker与TaskTracker之间的心跳等待中,因此,我们从如下角度考虑优化策略。
将setup与clean任务合并进MapReduce任务,也就是说,当一个作业在完成初始化时,我们直接启动MapReduce任务,在map端做的第一件事,就是setup,进行作业环境的创建,在reduce端做的最后一件事就是clean,清理临时目录。为此,我们可以在MapTask类中添加一个“setupJob()”方法,在ReduceTask类中添加一个“cleanJob()”方法,在Map任务的最开始阶段调用Task类的“runJobSetupTask()”方法,在reduce任务的最后阶段调用Task类的“runJobCleanupTask()”方法,然后作业结束,优化后的作业状态转换图如图2所示,优化后的流程图中没有了PREP.SETUP状态,被合并进了RUNNING.WAIT状态,也没有了CLEANUP状态,被合并进了RUNNING.SUC.WAIT状态。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

Claims (2)

1.一种Hadoop MapReduce的优化方法,其特征在于:一个作业的生命周期中有三个任务,包括setup任务、MapReduce任务和cleanup任务,将setup任务与clean任务合并进MapReduce任务,在一个作业在完成初始化时,直接启动MapReduce任务;即在map端首先执行setup任务,进行作业环境的创建,在reduce端最后执行clean任务,清理临时目录;然后作业结束,实现作业状态的优化。
2.根据权利要求1所述的一种Hadoop MapReduce的优化方法,其特征在于:所述在在map端首先执行setup任务,在reduce端最后执行clean任务的实现方法为:在MapTask类中添加一个“setupJob()”方法,在ReduceTask类中添加一个“cleanJob()”方法,在Map任务的最开始阶段调用Task类的“runJobSetupTask()”方法,在reduce任务的最后阶段调用Task类的“runJobCleanupTask()”方法。
CN201710052152.XA 2017-01-23 2017-01-23 一种Hadoop MapReduce的优化方法 Pending CN106844054A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710052152.XA CN106844054A (zh) 2017-01-23 2017-01-23 一种Hadoop MapReduce的优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710052152.XA CN106844054A (zh) 2017-01-23 2017-01-23 一种Hadoop MapReduce的优化方法

Publications (1)

Publication Number Publication Date
CN106844054A true CN106844054A (zh) 2017-06-13

Family

ID=59121051

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710052152.XA Pending CN106844054A (zh) 2017-01-23 2017-01-23 一种Hadoop MapReduce的优化方法

Country Status (1)

Country Link
CN (1) CN106844054A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130254196A1 (en) * 2012-03-26 2013-09-26 Duke University Cost-based optimization of configuration parameters and cluster sizing for hadoop
CN103336790A (zh) * 2013-06-06 2013-10-02 湖州师范学院 基于Hadoop的邻域粗糙集快速属性约简方法
CN103838626A (zh) * 2014-02-27 2014-06-04 华为技术有限公司 一种处理串行任务的数据处理装置及方法
CN104573106A (zh) * 2015-01-30 2015-04-29 浙江大学城市学院 一种基于案例推理技术的城市建设智能审批方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130254196A1 (en) * 2012-03-26 2013-09-26 Duke University Cost-based optimization of configuration parameters and cluster sizing for hadoop
CN103336790A (zh) * 2013-06-06 2013-10-02 湖州师范学院 基于Hadoop的邻域粗糙集快速属性约简方法
CN103838626A (zh) * 2014-02-27 2014-06-04 华为技术有限公司 一种处理串行任务的数据处理装置及方法
CN104573106A (zh) * 2015-01-30 2015-04-29 浙江大学城市学院 一种基于案例推理技术的城市建设智能审批方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨勇 等: "基于MapReduce 的关联规则并行增量更新算法", 《重庆邮电大学学报( 自然科学版)》 *
顾荣 等: "Hadoop MapReduce短作业执行性能优化", 《计算机研究与发展》 *

Similar Documents

Publication Publication Date Title
CN105808334B (zh) 一种基于资源重用的MapReduce短作业优化系统及方法
CN109034396B (zh) 用于处理分布式集群中的深度学习作业的方法和装置
CN105956021A (zh) 一种适用于分布式机器学习的自动化任务并行的方法及其系统
CN110908788B (zh) 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质
CN101887367B (zh) 一种多级并行化编程方法
EP3180695B1 (en) Systems and methods for auto-scaling a big data system
CN115248728A (zh) 面向智能计算的分布式训练任务调度方法、系统和装置
CN115237581A (zh) 一种面向异构算力的多策略智能调度方法和装置
JP2022008781A (ja) 分散型トレーニング方法、システム、デバイス、記憶媒体、及びプログラム
CN110457397A (zh) 一种数据同步的方法及装置
CN104360903A (zh) Spark作业调度系统中实现任务数据解耦的方法
CN107807983B (zh) 一种支持大规模动态图数据查询的并行处理框架的设计方法
CN110308984B (zh) 一种用于处理地理分布式数据的跨集群计算系统
CN106656525B (zh) 一种数据广播系统、数据广播方法及设备
CN113760638B (zh) 一种基于kubernetes集群的日志服务方法和装置
Wang et al. An efficient and non-intrusive GPU scheduling framework for deep learning training systems
Yan et al. Performance optimization for short MapReduce job execution in Hadoop
CN104243617A (zh) 一种异构集群中面向混合负载的任务调度方法及系统
CN110232087A (zh) 大数据增量迭代方法、装置、计算机设备和存储介质
CN112130966A (zh) 任务调度方法和系统
CN110502337B (zh) 针对Hadoop MapReduce中混洗阶段的优化系统
Guan et al. Fleet: Flexible efficient ensemble training for heterogeneous deep neural networks
CN106095552A (zh) 一种基于i/o去重的多任务图处理方法及系统
CN106371924A (zh) 一种最小化MapReduce集群能耗的任务调度方法
CN115934362B (zh) 面向深度学习的服务器无感知计算集群调度方法及产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170613

RJ01 Rejection of invention patent application after publication