CN106844054A - 一种Hadoop MapReduce的优化方法 - Google Patents
一种Hadoop MapReduce的优化方法 Download PDFInfo
- 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
- tasks
- mapreduce
- task
- setup
- clean
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task 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是一个由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()”方法。
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)
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 | 浙江大学城市学院 | 一种基于案例推理技术的城市建设智能审批方法 |
-
2017
- 2017-01-23 CN CN201710052152.XA patent/CN106844054A/zh active Pending
Patent Citations (4)
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)
Title |
---|
杨勇 等: "基于MapReduce 的关联规则并行增量更新算法", 《重庆邮电大学学报( 自然科学版)》 * |
顾荣 等: "Hadoop MapReduce短作业执行性能优化", 《计算机研究与发展》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11188380B2 (en) | Method and apparatus for processing task in smart device | |
US11789895B2 (en) | On-chip heterogeneous AI processor with distributed tasks queues allowing for parallel task execution | |
CN110908788B (zh) | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 | |
Hold-Geoffroy et al. | Once you SCOOP, no need to fork | |
CN104102949B (zh) | 一种分布式工作流装置及其处理工作流的方法 | |
CN107807983B (zh) | 一种支持大规模动态图数据查询的并行处理框架的设计方法 | |
CN102456031B (zh) | 一种MapReduce系统和处理数据流的方法 | |
CN110222005A (zh) | 用于异构架构的数据处理系统及其方法 | |
US9055072B2 (en) | Method for automated generation of minimal partitioning of a process specification for supporting its distributed execution | |
CN110347636B (zh) | 数据执行体及其数据处理方法 | |
CN105786603B (zh) | 一种基于分布式的高并发业务处理系统及方法 | |
CN112148455A (zh) | 一种任务处理方法、设备及介质 | |
CN110347489B (zh) | 一种基于Spark的多中心数据协同计算的流处理方法 | |
CN111104188A (zh) | 漏洞扫描器的调度方法及装置 | |
CN114327399B (zh) | 分布式训练方法、装置、计算机设备、存储介质和产品 | |
CN112000453A (zh) | 一种流计算系统的调度方法和系统 | |
CN106656525A (zh) | 一种数据广播系统、数据广播方法及设备 | |
CN106095552A (zh) | 一种基于i/o去重的多任务图处理方法及系统 | |
CN108153859A (zh) | 一种基于Hadoop与Spark的效用次序并行确定方法 | |
CN114328432A (zh) | 一种大数据联邦学习处理方法及系统 | |
CN110502337B (zh) | 针对Hadoop MapReduce中混洗阶段的优化系统 | |
CN113515341A (zh) | 一种灵活的分布式ai训练云平台部署方法及相关平台 | |
Zhi et al. | Fiber: A platform for efficient development and distributed training for reinforcement learning and population-based methods | |
KR20230024418A (ko) | 빠른 분산 훈련을 위한 축소 서버 | |
CN106844054A (zh) | 一种Hadoop MapReduce的优化方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |