CN103440167A - Hadoop多作业环境下自学习反馈的任务调度方法 - Google Patents
Hadoop多作业环境下自学习反馈的任务调度方法 Download PDFInfo
- Publication number
- CN103440167A CN103440167A CN2013103966635A CN201310396663A CN103440167A CN 103440167 A CN103440167 A CN 103440167A CN 2013103966635 A CN2013103966635 A CN 2013103966635A CN 201310396663 A CN201310396663 A CN 201310396663A CN 103440167 A CN103440167 A CN 103440167A
- Authority
- CN
- China
- Prior art keywords
- stage
- task
- weights
- tasks
- node
- 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
- Debugging And Monitoring (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及高性能集群领域的任务调度方法,Hadoop的每个工作节点通过作业提交阶段的解析后,获取到符合任务的实际阶段权值,通过几何平均值方法的处理后,为该作业的其余任务建立阶段权值的参考标准;在任务反馈阶段,该作业的其余任务采用所述参考标准,结合子阶段的进度对任务剩余执行时间进行估计;在作业反馈阶段,将所有任务的阶段权值用分段的方式求取几何平均值,并建立作业名-阶段权值映射记录,作为该节点上后续作业执行的参考。本发明能够在多作业并行执行的环境下分别对各个作业的任务进行自主学习和信息反馈,获得更精确的阶段权值估计,提高任务剩余执行时间预估的准确性,进而提高落后任务选择的命中率,促进集群资源的优化利用。
Description
技术领域
本发明涉及高性能集群领域的任务调度方法,具体涉及一种在Hadoop多作业环境下基于任务自主学习和信息反馈机制的任务调度方法。
背景技术
MapReduce是一个针对大规模的数据密集型应用的并行数据处理模型。Hadoop作为MapReduce的一个开源实现,已经被广泛采用于各个领域。然而,既有的Hadoop 具有很大的局限性,因为它的开发原理最初针对的是同构环境,默认的调度机制也是基于节点同构和任务线性执行的假设进行设计的,但是实际的应用中,由于硬件配置的差异、资源虚拟化等原因都无法满足这些假设。
通常,一个Hadoop集群是由许多常规的计算机构成的,这些机器按照主/从模式进行部署,选举一个作为主节点,其余的作为从节点,在主节点上部署作业处理器,负责作业和任务的调度分配;而从节点上部署任务处理器,负责任务的调度和执行。对于一个MapReduce计算,包括两个部分——Map任务和Reduce任务。当一个作业从客户端提交到Hadoop集群时,将会被分割成M个分片,Hadoop为每个片段创建Map任务。分配到Map任务的节点首先从相应的输入数据块读入内容,解析输入块的键/值对,然后执行用户自定义的Map函数,获得中间键值对,Hadoop根据中间键进行排序,输出到本地磁盘,同时根据Reduce任务数按键进行分组。Reduce任务在Shuffle阶段从所有已执行过Map任务的工作节点读取数据,当Reduce任务读取完所有的中间数据后也需要按键进行排序,最后,调用用户自定义的Reduce函数得到最终输出。因此,Map任务又分成Map和Sort两个子阶段,Reduce任务划分成Shuffle,Sort和Reduce三个子阶段。
MapReduce作业的Map任务和Reduce任务都是并行执行的,所有任务都完成了,这个作业才真正完成,因此一个作业的完成时间取决于最晚完成的那个任务。为了避免慢任务拖延作业的完成时间,研究者们相继提出了推测执行落后任务的思想以及各种改进方法。经对现有技术文档的检索发现,这些方法主要围绕如何有效识别落后任务以及为落后任务选择何种节点展开的。在识别落后任务方面,有人提出了估算最长剩余时间的方法,即预测每个任务到执行结束需要的时间,当剩余时间最长的任务的进度低于平均阈值时,就为其启动备份任务。因此,研究点又转移到对最长剩余时间的估算上,由于任务执行过程是非线性的,而不同作业的各个子阶段又因执行程序和可用资源的的不同而有较大差异。部分方法将各阶段的时间比例设置成更接近某种任务的固定值,虽然在一定程度上达到了改进的目的,但是局限性不言而喻,对于不同任务,该值没有参考价值,即使同一任务,在可用资源不同的情况下,实际权值也是相异的;因此产生了动态调整阶段权值的方法,以前面任务的信息作为参考,更新阶段权值,但是该方法在多作业多任务同时执行的情况下会产生较大的抖动。
发明内容
本发明的目的是提供一种在Hadoop多作业环境下基于任务执行特性和当前资源环境等相关因素考虑的任务调度方法。
本发明中采用以下方案实现:
一种Hadoop多作业环境下自学习反馈的任务调度方法,其特征在于包括以下阶段步骤:
步骤1、在作业进行解析阶段,为每个节点上的每个作业设置任务阶段权值的初始值,如果有相同类型的作业在该节点上执行过则以已完成作业反馈的阶段权值信息设置初始值;否则,以该节点上完成的各种作业中出现频率最高的阶段权值信息为其设置初始值;
步骤2、在自学习阶段,利用该节点上该作业已经完成的前若干个Map任务和Reduce任务的实际执行时间,分别计算出其相应子阶段执行时间的比例,转化成阶段权值;利用求几何平均值的方法分别修正该作业前若干个Map任务和Reduce任务的阶段权值;
步骤3、在任务反馈阶段,将修正过的阶段权值作为该作业标准的阶段权值设置,该节点上该作业剩余的任务启动时均采用该标准设置;结合任务子阶段的进度,估算每个任务执行的出剩余的执行时间,作为落后任务筛选的判别条件;
步骤4、在作业所有的任务完成后进入作业反馈阶段,该阶段分别对该节点上该作业的所有Map任务和Reduce任务分别进行分阶段的求取几何平均值,并在节点上更新作业名-阶段权值映射记录,作为后续该节点上作业执行的参考。
本发明的方法能够在多作业并行执行的环境下分别对各个作业的任务进行自主学习和信息反馈,获得更精确的阶段权值估计,提高任务剩余执行时间预估的准确性,进而提高落后任务选择的命中率,促进集群资源的优化利用。
附图说明
图1是Hadoop多作业环境下基于自学习反馈的任务调度的体系结构图。
图2是Hadoop多作业环境下基于自学习反馈的任务调度的流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
请参照图1,本发明Hadoop的每个工作节点通过作业提交阶段的解析后,对每个作业进行自主学习,对已经完成的Map任务或Reduce任务计算其各子阶段执行时间的比例,转换为阶段权值,利用几何平均数的算法处理上述已完成的若干个任务的阶段权值,得到适用于当前Hadoop集群环境下该作业的任务各子阶段的参考阶段权值。在任务反馈阶段,利用自学习阶段获取的参考阶段权值为该作业的其余任务设置符合任务执行特性和当前资源环境的阶段权值。利用该阶段权值结合子阶段的进度,就可以估算出距该任务全部结束所需要的时间。作业反馈阶段在作业的所有任务完成后进行,分别对该作业的所有Map任务和Reduce任务进行分阶段的求取几何平均值,并记录在节点上,作为后续作业执行的参考。请参照图2,具体分为以下步骤:
步骤1是通过作业提交时JobTracker传入到TaskTracker中的作业信息,在每个节点的TaskTracker上建立作业名-阶段权值映射,如果该作业曾经在该节点上执行过,则首先采用历史的阶段权值信息作为其默认初始值,同时更新该作业出现频数;否则根据局部性原理,以该节点上完成的各种作业中出现频率最高的作业的阶段权值信息为其设置初始值。该阶段可以有效的实现在多作业环境下对不同作业的分别处理,避免多作业历史信息的相互干扰。
步骤2通过该节点上该作业已经完成的任务的实际执行时间,分别计算出其相应子阶段执行时间的比例,转化成阶段值。具体的阶段权值计算公式如下所示:
其中,M1, M2, R1, R2, R3分别代表Map任务的Map,Sort阶段和Reduce任务的Shuffle,Sort,Reduce阶段的执行时间比例,即阶段权值。MDT1, MDT2, RDT1, RDT2, RDT3 分别代表各个阶段的执行时间。Map任务的Map阶段的开始时间和结束时间就表示成MMS 和MME,与此类似,MSS 和 MSE就表示Map任务的Sort阶段的开始时间和结束时间;同样的,RSHS, RSS 和 RRS 表示Reduce任务的Shuffle,Sort和Reduce阶段的开始时间,而RSHE, RSE 和 RRE就是这些阶段的结束时间。由于统一作业的任务间获得的阶段权值是不唯一的,甚至某个任务因为不可预料的原因使阶段权值的计算出现巨大偏差,为了减少估算误差,该阶段引入了求几何平均值的方法来修正这些任务的阶段权值。引入的几何平均值计算公式如下所示:
其中x分别代表M1, M2, R1, R2, R3,k为用于自学习阶段的任务数,其取值并不会太大,因此用几何平均值的方法进行计算所占用的资源是可以忽略不计的。
步骤3利用自学习阶段获得的修正的阶段权值信息是符合当前任务的执行特性和资源环境的,具有很强的参考价值,以此作为阶段权值的设置,可以提高任务剩余执行时间的估计的精确度。因此,在该节点上,该作业的其余任务均以此阶段权值作为标准,结合任务子阶段的进度,估算剩余的执行时间。剩余的执行时间的估算采取Hadoop默认的计算方式,参与估算的相关公式如下所示:
在获得较为精确的剩余时间后,可以按照Hadoop默认的选择方式进行选择,即选择剩余完成时间最大且进度低于慢任务阈值SlowTaskThreshold的任务,为该任务启动备份任务。
步骤4是在节点上,每完成一个作业,就分别根据记录的所有的Map任务和Reduce任务的阶段权值信息进行计算,计算采取的是分段求几何平均值的方式,根据预设的分段区间任务数p,按顺序对每p个任务计算一次几何平均值,对最终的结果再计算几何平均值,这样可以有效避免部分非正常任务的干扰。最终的结果在节点上建立作业名-阶段权值映射记录,并以此作为后续作业执行的参考。
步骤1中作业名信息的传入通过JobName参数从JobTracker传入到TaskTracker,如果作业名不存在,则在每个节点的TaskTracker上建立作业名-阶段权值映射,其中这里的阶段权值是两个一维数组:MapPhaseWeight[]和ReducePhaseWeight[],即分别为Map任务和Reduce任务建立作业名-阶段权值映射,数组同时记录该作业的出现频率。如果作业名已经存在,则直接将该映射的阶段权值应用于初始任务中,更新出现频数。同时还需要维护两个二维数组MapPhaseWeight_tmp[][]和ReducePhaseWeight_tmp[][],用于记录该作业的所有Map任务和Reduce任务的阶段权值信息。
步骤2中的执行时间通过临时数组传到TaskTracker的计算更新模块中,分别计算出各阶段的权值。当完成的学习的任务数满足用户设定的阈值LearningThreshold时候,才计算几何平均值以修正阶段权值,此前启动的任务采取步骤1中的默认初始值。实验证明,LearningThreshold的值不需要太大即可得到较为精确的预测值,随着LearningThreshold的增大,预测的精度并无太大提高。
在步骤2和步骤3中都需要在任务执行结束后分别计算阶段权值信息并记录到步骤1中建立的两个二维数组MapPhaseWeight_tmp[][]和ReducePhaseWeight_tmp[][]中。
步骤4中分段求几何平均值的算法中, 预设的分段区间任务数p的值在20左右较为适宜,不会增大计算量,又不至于分段过多。预设的分段区间任务数p的值在TaskTracker中进行设置,如果该值需要更新的话需要重新启动节点。
最后应当说明的是:以上所述的本发明的实施例是为了便于说明本发明的技术方案而非对其限制,所属领域的研究和技术人员应当理解:在本发明的精神和原则之内,对本发明的具体实施进行修改、等同替换或者改进等,均应包含在本发明的保护范围之内。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (4)
1.一种Hadoop多作业环境下自学习反馈的任务调度方法,其特征在于包括以下阶段步骤:
步骤1、在作业进行解析阶段,为每个节点上的每个作业设置任务阶段权值的初始值,如果有相同类型的作业在该节点上执行过则以已完成作业反馈的阶段权值信息设置初始值;否则,以该节点上完成的各种作业中出现频率最高的阶段权值信息为其设置初始值;
步骤2、在自学习阶段,利用该节点上该作业已经完成的前若干个Map任务和Reduce任务的实际执行时间,分别计算出其相应子阶段执行时间的比例,转化成阶段权值;利用求几何平均值的方法分别修正该作业前若干个Map任务和Reduce任务的阶段权值;
步骤3、在任务反馈阶段,将修正过的阶段权值作为该作业标准的阶段权值设置,该节点上该作业剩余的任务启动时均采用该标准设置;结合任务子阶段的进度,估算每个任务执行的出剩余的执行时间,作为落后任务筛选的判别条件;
步骤4、在作业所有的任务完成后进入作业反馈阶段,该阶段分别对该节点上该作业的所有Map任务和Reduce任务分别进行分阶段的求取几何平均值,并在节点上更新作业名-阶段权值映射记录,作为后续该节点上作业执行的参考。
2.根据权利要求1所述的Hadoop多作业环境下自学习反馈的任务调度方法,其特征在于:所述步骤2中的阶段权值计算公式如下所示:
其中,M1, M2, R1, R2, R3分别代表Map任务的Map,Sort阶段和Reduce任务的Shuffle,Sort,Reduce阶段的执行时间比例,即阶段权值;MDT1, MDT2, RDT1, RDT2, RDT3 分别代表各个阶段的执行时间;Map任务的Map阶段的开始时间和结束时间表示成MMS 和MME,MSS 和 MSE表示Map任务的Sort阶段的开始时间和结束时间; RSHS, RSS 和 RRS 表示Reduce任务的Shuffle,Sort和Reduce阶段的开始时间,RSHE, RSE 和 RRE是阶段的结束时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310396663.5A CN103440167B (zh) | 2013-09-04 | 2013-09-04 | Hadoop多作业环境下自学习反馈的任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310396663.5A CN103440167B (zh) | 2013-09-04 | 2013-09-04 | Hadoop多作业环境下自学习反馈的任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103440167A true CN103440167A (zh) | 2013-12-11 |
CN103440167B CN103440167B (zh) | 2016-06-29 |
Family
ID=49693857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310396663.5A Active CN103440167B (zh) | 2013-09-04 | 2013-09-04 | Hadoop多作业环境下自学习反馈的任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103440167B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298550A (zh) * | 2014-10-09 | 2015-01-21 | 南通大学 | 一种面向Hadoop的动态调度方法 |
CN104915407A (zh) * | 2015-06-03 | 2015-09-16 | 华中科技大学 | 一种基于Hadoop多作业环境下的资源调度方法 |
CN104915260A (zh) * | 2015-06-19 | 2015-09-16 | 北京搜狐新媒体信息技术有限公司 | 一种Hadoop集群管理任务的分发方法和系统 |
CN106055379A (zh) * | 2015-04-09 | 2016-10-26 | 国际商业机器公司 | 用于调度计算任务的方法和系统 |
CN106203757A (zh) * | 2015-05-06 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 计算资源管理方法和装置 |
WO2017041674A1 (zh) * | 2015-09-10 | 2017-03-16 | 阿里巴巴集团控股有限公司 | 一种启动备份任务的方法、装置及电子设备 |
CN106970836A (zh) * | 2017-03-20 | 2017-07-21 | 联想(北京)有限公司 | 执行任务的方法和系统 |
CN108089921A (zh) * | 2016-11-23 | 2018-05-29 | 财团法人资讯工业策进会 | 用于云端大数据运算架构的服务器及其运算资源最佳化方法 |
CN108182115A (zh) * | 2017-12-28 | 2018-06-19 | 福州大学 | 一种云环境下的虚拟机负载均衡方法 |
CN110914802A (zh) * | 2017-06-30 | 2020-03-24 | Oppo广东移动通信有限公司 | 应用控制方法、装置、存储介质及电子设备 |
WO2020248227A1 (zh) * | 2019-06-13 | 2020-12-17 | 东北大学 | 一种基于负载预测的Hadoop计算任务推测执行方法 |
CN113138810A (zh) * | 2021-04-23 | 2021-07-20 | 上海中通吉网络技术有限公司 | 一种计算HiveSql执行进度的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521056A (zh) * | 2011-12-28 | 2012-06-27 | 用友软件股份有限公司 | 任务分配装置和任务分配方法 |
CN102831012A (zh) * | 2011-06-16 | 2012-12-19 | 日立(中国)研究开发有限公司 | 多节点分布式系统中的任务调度装置和任务调度方法 |
CN103019855A (zh) * | 2012-11-21 | 2013-04-03 | 北京航空航天大学 | MapReduce作业执行时间预测方法 |
US20130167151A1 (en) * | 2011-12-22 | 2013-06-27 | Abhishek Verma | Job scheduling based on map stage and reduce stage duration |
-
2013
- 2013-09-04 CN CN201310396663.5A patent/CN103440167B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831012A (zh) * | 2011-06-16 | 2012-12-19 | 日立(中国)研究开发有限公司 | 多节点分布式系统中的任务调度装置和任务调度方法 |
US20130167151A1 (en) * | 2011-12-22 | 2013-06-27 | Abhishek Verma | Job scheduling based on map stage and reduce stage duration |
CN102521056A (zh) * | 2011-12-28 | 2012-06-27 | 用友软件股份有限公司 | 任务分配装置和任务分配方法 |
CN103019855A (zh) * | 2012-11-21 | 2013-04-03 | 北京航空航天大学 | MapReduce作业执行时间预测方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298550B (zh) * | 2014-10-09 | 2017-11-14 | 南通大学 | 一种面向Hadoop的动态调度方法 |
CN104298550A (zh) * | 2014-10-09 | 2015-01-21 | 南通大学 | 一种面向Hadoop的动态调度方法 |
CN106055379A (zh) * | 2015-04-09 | 2016-10-26 | 国际商业机器公司 | 用于调度计算任务的方法和系统 |
CN106203757A (zh) * | 2015-05-06 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 计算资源管理方法和装置 |
CN104915407A (zh) * | 2015-06-03 | 2015-09-16 | 华中科技大学 | 一种基于Hadoop多作业环境下的资源调度方法 |
CN104915407B (zh) * | 2015-06-03 | 2018-06-12 | 华中科技大学 | 一种基于Hadoop多作业环境下的资源调度方法 |
CN104915260B (zh) * | 2015-06-19 | 2018-05-25 | 北京搜狐新媒体信息技术有限公司 | 一种Hadoop集群管理任务的分发方法和系统 |
CN104915260A (zh) * | 2015-06-19 | 2015-09-16 | 北京搜狐新媒体信息技术有限公司 | 一种Hadoop集群管理任务的分发方法和系统 |
WO2017041674A1 (zh) * | 2015-09-10 | 2017-03-16 | 阿里巴巴集团控股有限公司 | 一种启动备份任务的方法、装置及电子设备 |
CN108089921A (zh) * | 2016-11-23 | 2018-05-29 | 财团法人资讯工业策进会 | 用于云端大数据运算架构的服务器及其运算资源最佳化方法 |
CN108089921B (zh) * | 2016-11-23 | 2022-01-21 | 财团法人资讯工业策进会 | 用于云端大数据运算架构的服务器及其运算资源最佳化方法 |
CN106970836A (zh) * | 2017-03-20 | 2017-07-21 | 联想(北京)有限公司 | 执行任务的方法和系统 |
CN110914802A (zh) * | 2017-06-30 | 2020-03-24 | Oppo广东移动通信有限公司 | 应用控制方法、装置、存储介质及电子设备 |
CN108182115A (zh) * | 2017-12-28 | 2018-06-19 | 福州大学 | 一种云环境下的虚拟机负载均衡方法 |
CN108182115B (zh) * | 2017-12-28 | 2021-08-31 | 福州大学 | 一种云环境下的虚拟机负载均衡方法 |
WO2020248227A1 (zh) * | 2019-06-13 | 2020-12-17 | 东北大学 | 一种基于负载预测的Hadoop计算任务推测执行方法 |
CN113138810A (zh) * | 2021-04-23 | 2021-07-20 | 上海中通吉网络技术有限公司 | 一种计算HiveSql执行进度的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103440167B (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103440167A (zh) | Hadoop多作业环境下自学习反馈的任务调度方法 | |
US11632422B2 (en) | Automated server workload management using machine learning | |
JP6530783B2 (ja) | 機械学習装置、制御装置及び機械学習プログラム | |
US10831633B2 (en) | Methods, apparatuses, and systems for workflow run-time prediction in a distributed computing system | |
US9286001B2 (en) | Effective range partition splitting in scalable storage | |
US10679145B2 (en) | System and method for balancing computation with communication in parallel learning | |
KR20240005113A (ko) | 총체적 글로벌 성능 및 전력 관리 | |
US9218210B2 (en) | Distributed processing system | |
CN103064664A (zh) | 一种基于性能预估的Hadoop参数自动优化方法和系统 | |
US10025789B2 (en) | Data analyzing apparatus and program | |
US20190079796A1 (en) | Computational resource management device, computational resource management method, and computer-readable recording medium | |
JP6129290B1 (ja) | 分散計算におけるアプリケーションパラメータ設定およびシステム仕様設定を推奨する方法およびシステム | |
JP6778130B2 (ja) | 仮想計算機システムおよびそのリソース割当て方法 | |
US10558191B2 (en) | Generation and publication of shared tagsets | |
US10019481B2 (en) | Adaptive selection of a distribution method during execution of parallel join operations | |
JP2012181578A (ja) | 更新制御装置及びプログラム | |
US8346704B2 (en) | Controlled constraint sharing in parallel problem solvers | |
JP2017034307A (ja) | 情報収集管理装置、方法、及び情報収集システム | |
WO2013186831A1 (ja) | ストリームデータ処理方法、ストリームデータ処理装置及びプログラム | |
KR102195886B1 (ko) | 분산 처리 시스템 및 이의 동작 방법 | |
CN112541513B (zh) | 一种模型训练方法、装置、设备及存储介质 | |
WO2012093469A1 (ja) | 性能評価装置及び性能評価方法 | |
KR101639003B1 (ko) | Cpu/gpu 기반 매니코어 시스템 및 cpu/gpu의 동시처리를 위한 작업량 분배 방법 | |
US10089151B2 (en) | Apparatus, method, and program medium for parallel-processing parameter determination | |
JP2016207136A (ja) | モデル推定システム、モデル推定方法およびモデル推定プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |