CN103645952A - 一种基于MapReduce的非精确任务并行处理方法 - Google Patents
一种基于MapReduce的非精确任务并行处理方法 Download PDFInfo
- Publication number
- CN103645952A CN103645952A CN201310343007.9A CN201310343007A CN103645952A CN 103645952 A CN103645952 A CN 103645952A CN 201310343007 A CN201310343007 A CN 201310343007A CN 103645952 A CN103645952 A CN 103645952A
- Authority
- CN
- China
- Prior art keywords
- subtask
- map
- task
- information
- finished
- 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.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种基于MapReduce的非精确任务并行处理方法,步骤为:(1)选取M个Map子任务执行节点和一个Check节点,Check节点存储有将要执行的具有非精确计算特征的任务是否完成的判断逻辑;(2)将任务分解成N个Map子任务分配给前述M个执行节点执行;(3)每一个Map子任务执行完毕时,向Check节点发送任务执行完毕信息以及与判断逻辑相关的结果信息;(4)每收到一个Map子任务执行完毕的信息,Check节点会将它累计到之前的结果中,直至累计结果满足判断逻辑;(5)终止所有Check节点尚未接收到执行完毕信息的Map子任务,结束Map任务执行过程,同步进入Reduce子任务;(6)获取Reduce任务执行结果,整个任务执行完毕。
Description
技术领域
本发明属于云计算领域,涉及一种基于MapReduce面向非精确计算应用的任务并行处理方法。
背景技术
MapReduce是云计算领域最流行的并行计算方法,它的出现是该领域的一个里程碑事件。MapReduce支持使用大量计算节点并行处理大数据作业,对数据密集型计算具有重要意义。MapReduce执行流程如图1所示,其计算过程由两个基本任务组成:Map和Reduce。Map任务将输入数据划分成若干个数据子集,并针对每个子集产生一个在单节点上运行的Map子任务,每个子任务都产生<key,value>形式的中间结果;Reduce任务也是由若干个在单节点上运行的子任务组成,每个子任务只接收部分<key,value>形式的中间结果,待所有Map子任务结束后,Reduce子任务同步开始处理,产生最终结果。
在MapReduce执行流程中,用户需要编写Map和Reduce函数来设计子任务的数据处理逻辑程序。其他操作,如数据分割、子任务调度、子任务启动、Reduce子任务取中间数据、Reduce子任务同步执行等,都由MapReduce***本身实现,对用户透明。
根据MapReduce的执行流程可知,Map子任务是分配到不同的计算节点上并行执行的。由于存在计算节点的计算能力不同等原因,导致实际运行过程中,经常存在一些严重滞后的Map子任务,如图2中Map子任务5和Map子任务7的时间远远超过了其他Map子任务。
由于Reduce子任务执行前存在一个同步过程,即必须等到所有Map子任务都结束后才会被执行,因此,晚结束的Map子任务会滞后Reduce子任务执行的开始时间,如图3所示。
针对上述问题,现有的处理方法是将可能出现滞后的Map子任务调度到其他节点上运行,以减少Map子任务滞后的概率和影响,从而提前同步过程。如图4所示,假设Map子任务5被判断可能滞后,因此在运行Map子任务3的节点上重新启动执行子任务5,类似地,Map子任务7在运行Map子任务6的节点上重新启动执行。新启动的Map子任务5和Map子任务7执行获得改善,同步被提前。这种解决办法虽然可以改善Map子任务滞后的情况,但是对Map子任务的再次分配不能保证一定缩短整个Map任务的时间,而且即便能够缩短整个Map任务的时间,也会浪费更多的计算资源。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种基于MapReduce的面向非精确计算应用的任务并行处理方法,可以显著的缩短Map任务的执行时间,节约计算资源,提高任务并行执行的效率。
本发明的技术解决方案是:一种基于MapReduce的非精确任务并行处理方法,步骤如下:
(1)选取M个分布式节点作为Map子任务的执行节点,同时选取一个分布式节点作为Check节点,所述的Check节点上存储有将要执行的具有非精确计算特征的任务是否完成的判断逻辑,其中M为正整数;
(2)将所述的具有非精确计算特征的任务分解成N个Map子任务分配给所述M个执行节点执行;
(3)每一个Map子任务执行完毕时,均向Check节点发送子任务执行完毕信息以及与判断逻辑相关的结果信息;
(4)每收到一个Map子任务执行完毕信息,Check节点就将新收到的结果信息累计到此前已收到的结果信息中,并判断累计结果是否满足判断逻辑,如果已经满足则转步骤(5);如果没有满足则继续等待接收新的Map子任务执行完毕信息,直至累计结果满足判断逻辑后再转入步骤(5);
(5)终止所有Check节点尚未接收到执行完毕信息的Map子任务,结束Map任务执行过程,同步开始Reduce子任务;
(6)获取Reduce任务的执行结果,具有非精确计算特征的任务执行完毕。
本发明与现有技术相比的优点在于:本发明方法针对非精确计算应用中的Map子任务滞后问题,在现有的MapReduce的执行流程中增加一个新的Check机制,其计算过程仍然由Map和Reduce两个基本任务组成,不同的是***中增加了一个Check节点,它存储有用户定义的判断Map任务是否完成的逻辑,每个Map子任务在执行结束时会向Check节点发送子任务执行完毕信息以及与判断逻辑相关的结果信息。每收到一个Map子任务执行完毕信息,Check节点就将新收到的结果信息累计到此前已经收到的所有子结果信息中,并判断累计结果是否满足判断逻辑。一旦条件满足,则终止所有Check节点尚未接收到执行完毕信息的Map子任务,结束Map任务执行过程。这样滞后子任务就被有条件地放弃了。在任务目标要求获得满足的同时,Reduce子任务同步开始时间也被提前了。本发明方法可以显著的提高Map任务的执行时间,从而缩短整个任务并行处理的时间,并且节省了大量的计算资源,提高了任务执行的效率。
附图说明
图1为MapReduce执行流程图;
图2为Map子任务执行时间实例示意图;
图3为Reduce子任务执行受Map子任务影响示意图;
图4为现有的优化MapReduce执行流程的方法示意图;
图5为本发明方法优化MapReduce执行流程的原理图;
图6为本发明方法的流程框图。
具体实施方式
目前,MapReduce任务中还存在大量具有非精确计算特征的应用,它们并不需要处理完所有数据才能获得堪用的结果。例如:
(1)具有统计学意义的数据分析。如,舆情分析,此类应用在统计了足够的样本数据后,舆情分析的结论即趋向稳定,更多样本数据的统计可以被放弃。
(2)指定特征样本数的统计分析。如,在海量数据中寻找具有某类特征的10000个样本进行分析。当所需样本数被收集完成后,更多数据的分析处理即可放弃。
(3)指定计算量的数据分析。如,每日只随机分析当日业务数据5个小时,超过时间后即不再处理剩余数据。
在满足目标要求的前提下,这些应用都可以放弃未执行完的子任务,提前终止Map任务执行过程,如图5所示。
针对上述有非精确计算特征的MapReduce任务,本发明提出了一种新的任务并行处理方法,通过有条件地放弃滞后子任务达到既满足目标要求,又提前Reduce子任务同步开始时间的目的。
本发明方法的基本思想是:在MapReduce的执行流程中增加一个称为Check的新机制,它包括发送check信息、接收check信息、发送停止命令、接收停止命令等四种基本操作,以及check编程接口和Check节点。
发送check信息是指Map子任务在结束时向Check节点发送子任务发送子任务执行完毕信息以及与判断逻辑相关的结果信息的操作;
接收check信息是指Check节点接收子任务执行完毕信息的操作;
发送停止命令是指***通知各节点终止Map子任务执行的操作;
check编程接口是一个可供用户编程的函数,用于定义Map任务完成的判断逻辑;
Check节点是实现上述逻辑判断的一个机构,负责接收子任务执行完毕信息,累计接收的结果信息,判断累计结果是否满足判断逻辑,在条件成立时发送停止命令的机构,通常是一个单独的节点。
本发明的任务并行处理方法的执行流程如图6所示。本发明方法虽然增加了新的Check机制,但是其计算过程仍然由Map和Reduce两个基本任务组成。Map任务首先也是将输入数据划分成若干个数据子集(设为N),针对每个子集产生一个在单节点上运行的Map子任务,每个子任务都产生<key,value>形式的中间结果。与传统MapReduce子任务的执行不同,本发明方法中的Map子任务在结束时会向Check节点发送子任务执行完毕信息以及与判断逻辑相关的结果信息。Check节点可以设置在一个单独的新的节点上,而用户定义的用于逻辑判断的信息可以根据用户的实际需求任意确定,如前述的三种典型应用中,该信息可以是统计的样本数据数量,数字10000,以及用以确定计算量的具体指标数据。Check节点每收到一个Map子任务执行完毕的信息,就会将新收到的结果信息累计到此前已经收到的所有结果信息中,并判断累计结果是否满足判断逻辑。一旦条件满足,则后续未执行完成的Map子任务会被终止(最多有N-Nfinished个Map子任务被终止,假设本次判断是因为第Nfinished个Map子任务发送执行完毕信息),从而结束Map任务执行过程。
由此可以看出,在本发明的方法设定条件下,Map阶段会在两种情况下结束:
(1)所有的Map子任务被处理
(2)部分Map子任务被终止
本发明方法中的Reduce任务执行过程与MapReduce无区别,所有Reduce子任务同步启动,并产生最终结果。
本发明方法可以很好地解决非精确计算应用中的Map子任务滞后问题。尽管少数Map节点依然可能出现滞后现象,但是,在不影响目标要求的前提下,这些滞后的子任务会被自动丢弃,对原工作流程不会产生影响,不仅没有延长Map任务执行时间,而且没有资源浪费,这就达到了如图5所示的目标。
实施例
测试环境:在同一机架内使用虚拟机技术搭建一个具有40个同构计算节点的计算集群,其中32个节点用于Map子任务执行。该机架包含多个物理节点,每个物理节点具有一个四核至强处理器以及4G内存,部署4个同构虚拟机,节点之间通过机架内交换机互联。
实验内容是一个包含128个Map子任务的WordCount任务,每个子任务负责处理128MB的数据,通过调节随机参数模拟子任务出现严重滞后的情况。Check节点的判断条件选取完成子任务的数量,接收到的Map子任务执行完毕信息数量达到该值即可结束Map任务执行过程。
实验1:验证滞后子任务对MapReduce执行流程的影响。
在32个节点上处理128个128MB数据的Map子任务,平均每个节点执行4个。子任务平均完成时间为614毫秒,当所有子任务都正常结束时,该Map任务耗时约2456秒。实验中,模拟一个节点运行的第3个子任务出现严重滞后,执行时间为3771毫秒,最终整个Map任务的总时间为5049毫秒。
实验结果表明,采取现有MapReduce执行流程,Map任务执行时间会因为滞后子任务而被严重迟滞。
实验2:验证在新节点上重启滞后子任务的改进效果。
在32个节点上处理128个128MB数据的Map子任务,平均每个节点执行4个。子任务平均完成时间为614毫秒,当所有子任务都正常结束时,该Map任务耗时约2456秒。设定当子任务处理时间超过平均时间一倍仍未完成时,即1228毫秒,该子任务就被判定出现滞后,***将放弃其当前执行并重启。实验中,模拟一个节点运行的第3个子任务出现严重滞后,运行时间达到1228毫秒仍未结束,于是***放弃继续执行该子任务,并将其重新放入子任务队列等待新的调度执行,而该节点则被分配执行新的子任务。最终整个Map任务的总时间为3137毫秒。
实验结果表明,采取在新节点上重启滞后子任务的机制改进现有MapReduce执行流程,可以减轻滞后子任务带来的影响,但是依然会延长Map任务执行的总时间。
实验3:验证本发明方法的新执行流程的效果。
在32个节点上处理128个128MB数据的Map子任务,平均每个节点执行4个。子任务平均完成时间为614毫秒,当所有子任务都正常结束时,该Map任务耗时约2456秒。设定超过100个子任务完成即可结束Map任务执行过程。实验中,模拟一个节点运行的第3个子任务出现严重滞后。当部分节点完成第4个子任务时,已有100个子任务发送了执行完毕信息,满足Map任务结束条件,于是,Check节点发出停止命令,结束Map任务执行过程。最终整个Map任务的总时间为2531毫秒。
实验结果表明,采取本发明方法的新执行流程,在达到用户定义的任务目标要求的同时缩短了Map任务的执行时间。由于放弃了未执行完的子任务,滞后子任务未对执行流程产生影响。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (1)
1.一种基于MapReduce的非精确任务并行处理方法,其特征在于步骤如下:
(1)选取M个分布式节点作为Map子任务的执行节点,同时选取一个分布式节点作为Check节点,所述的Check节点上存储有将要执行的具有非精确计算特征的任务是否完成的判断逻辑,其中M为正整数;
(2)将所述的具有非精确计算特征的任务分解成N个Map子任务分配给所述M个执行节点执行;
(3)每一个Map子任务执行完毕时,均向Check节点发送子任务执行完毕信息以及与判断逻辑相关的结果信息;
(4)每收到一个Map子任务执行完毕信息,Check节点就将新收到的结果信息累计到此前已收到的结果信息中,并判断累计结果是否满足判断逻辑,如果已经满足则转步骤(5);如果没有满足则继续等待接收新的Map子任务执行完毕信息,直至累计结果满足判断逻辑后再转入步骤(5);
(5)终止所有Check节点尚未接收到执行完毕信息的Map子任务,结束Map任务执行过程,同步开始Reduce子任务;
(6)获取Reduce任务的执行结果,具有非精确计算特征的任务执行完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310343007.9A CN103645952B (zh) | 2013-08-08 | 2013-08-08 | 一种基于MapReduce的非精确任务并行处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310343007.9A CN103645952B (zh) | 2013-08-08 | 2013-08-08 | 一种基于MapReduce的非精确任务并行处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103645952A true CN103645952A (zh) | 2014-03-19 |
CN103645952B CN103645952B (zh) | 2017-06-06 |
Family
ID=50251174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310343007.9A Active CN103645952B (zh) | 2013-08-08 | 2013-08-08 | 一种基于MapReduce的非精确任务并行处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103645952B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005505A (zh) * | 2015-06-25 | 2015-10-28 | 南京航空航天大学 | 空中多目标轨迹预测的并行处理方法 |
CN106302662A (zh) * | 2016-08-03 | 2017-01-04 | 浪潮电子信息产业股份有限公司 | 一种基于Hbase的节省网络流量的MR运行方法 |
CN112990332A (zh) * | 2021-03-26 | 2021-06-18 | 杭州海康威视数字技术股份有限公司 | 一种子图规模预测和分布式训练方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841822A (zh) * | 2011-06-23 | 2012-12-26 | 腾讯科技(深圳)有限公司 | 对jobTracker主机进行宕机保护的方法和*** |
CN103019853A (zh) * | 2012-11-19 | 2013-04-03 | 北京亿赞普网络技术有限公司 | 一种作业任务的调度方法和装置 |
CN103218263A (zh) * | 2013-03-12 | 2013-07-24 | 北京航空航天大学 | MapReduce参数的动态确定方法及装置 |
-
2013
- 2013-08-08 CN CN201310343007.9A patent/CN103645952B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841822A (zh) * | 2011-06-23 | 2012-12-26 | 腾讯科技(深圳)有限公司 | 对jobTracker主机进行宕机保护的方法和*** |
CN103019853A (zh) * | 2012-11-19 | 2013-04-03 | 北京亿赞普网络技术有限公司 | 一种作业任务的调度方法和装置 |
CN103218263A (zh) * | 2013-03-12 | 2013-07-24 | 北京航空航天大学 | MapReduce参数的动态确定方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005505A (zh) * | 2015-06-25 | 2015-10-28 | 南京航空航天大学 | 空中多目标轨迹预测的并行处理方法 |
CN106302662A (zh) * | 2016-08-03 | 2017-01-04 | 浪潮电子信息产业股份有限公司 | 一种基于Hbase的节省网络流量的MR运行方法 |
CN112990332A (zh) * | 2021-03-26 | 2021-06-18 | 杭州海康威视数字技术股份有限公司 | 一种子图规模预测和分布式训练方法、装置及电子设备 |
CN112990332B (zh) * | 2021-03-26 | 2023-06-02 | 杭州海康威视数字技术股份有限公司 | 一种子图规模预测和分布式训练方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103645952B (zh) | 2017-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10031775B2 (en) | Backfill scheduling for embarrassingly parallel jobs | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CN107025205B (zh) | 一种分布式***中的训练模型的方法及设备 | |
US11474874B2 (en) | Systems and methods for auto-scaling a big data system | |
Chang et al. | Scheduling in mapreduce-like systems for fast completion time | |
CN104915407B (zh) | 一种基于Hadoop多作业环境下的资源调度方法 | |
CN110908788B (zh) | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 | |
US10887202B2 (en) | Pre-starting services based on traversal of a directed graph during execution of an application | |
CN111367630A (zh) | 一种基于云计算的多用户多优先级的分布式协同处理方法 | |
US20200012507A1 (en) | Control system for microkernel architecture of industrial server and industrial server comprising the same | |
CN106383746A (zh) | 大数据处理***的配置参数确定方法和装置 | |
CN111160873A (zh) | 基于分布式架构的跑批处理装置及方法 | |
CN104572301A (zh) | 一种资源分配方法和*** | |
CN111176637B (zh) | 基于缓存抢占延迟约束下aadl模型的可调度性分析方法 | |
CN103645952A (zh) | 一种基于MapReduce的非精确任务并行处理方法 | |
CN112860401A (zh) | 任务调度方法、装置、电子设备和存储介质 | |
Wang et al. | A model driven approach towards improving the performance of apache spark applications | |
CN101996105A (zh) | 可重构计算平台上的静态软硬件任务划分与调度方法 | |
CN115951974A (zh) | Gpu虚拟机的管理方法、***、设备和介质 | |
CN108429704B (zh) | 一种节点资源分配方法及装置 | |
CN115640278A (zh) | 一种数据库性能智能优化的方法及*** | |
CN113177632A (zh) | 一种基于流水线并行的模型训练方法、装置以及设备 | |
US10866833B2 (en) | Method and appratus for implementing microkernel architecture of industrial server | |
CN113254200A (zh) | 资源编排方法及智能体 | |
CN116542334B (zh) | 基于Web浏览器的深度神经网络推理调度方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |