CN103064728A - 一种MapReduce任务的容错调度方法 - Google Patents
一种MapReduce任务的容错调度方法 Download PDFInfo
- Publication number
- CN103064728A CN103064728A CN2012105358926A CN201210535892A CN103064728A CN 103064728 A CN103064728 A CN 103064728A CN 2012105358926 A CN2012105358926 A CN 2012105358926A CN 201210535892 A CN201210535892 A CN 201210535892A CN 103064728 A CN103064728 A CN 103064728A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- check point
- offset
- mapper
- 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
Images
Landscapes
- Retry When Errors Occur (AREA)
Abstract
本发明涉及云计算环境中并行任务的调度处理方法,公开一种针对MapReduce作业的容错调度方法,以提高MapReduce作业的整体性能,减少节点失效时的作业延迟。本发明结合检查点和主动复制两种技术,在Mapper任务执行时创建本地检查点和索引检查点两种检查点,当任务发生失效时,本地检查点能够将出错任务的状态和执行恢复到检查点处,减少了任务的重复执行时间;当发生节点失效时,副本节点能够根据索引检查点快速构造出失效节点上执行的mapper任务的中间结果数据,大大减少了重调度任务的执行时间。实验结果表明该方法能够比Hadoop的运行时性能提高30%以上,同时并不明显增加***的存储和网络开销。
Description
技术领域
本发明涉及到云计算环境中并行任务调度方法,是一种结合检查点和主动复制的MapReduce任务的容错调度方法。
背景技术
云环境中,节点和任务失效不再是个意外,而成为大规模***的特征。LADIS 2009大会发布数据显示,一个集群每年会有1%~5%的硬盘会报废,20个机架和3个路由器会宕机一次,服务器每年会平均宕机两次,报废几率在2%~4%。即使对于一个由1万个超级可靠的服务器(MTBF为30年)组成的分布式***,每天也都会发生失效问题。因此,对于由大量廉价计算机所组成的云环境而言,由各种故障带来的节点和任务失效成为更频繁和普遍的问题,必须视失败为常态,***必须提供有效的容错方法。
MapReduce提供了一种以大规模并行处理模式来处理数据密集型任务的编程模型。在Google公司内部,通过大规模集群和MapReduce软件,每天有超过20PB的数据得到处理,每个月处理的数据量超过400PB。Yahoo公司实现了基于MapReduce的开源版本Hadoop,Facebook每天用它来处理数据导入、提交时报等任务,Amazon公司采用弹性MapReduce来处理大量的数据密集型任务。MapReduce由于它的易于编程、数据分布和容错等特性而受到越来越多的关注和应用。
Google在2006年的研究报告中指出,在一个平均由268个工作节点组成的计算环境中,每一个MapReduce作业都伴随着5个工作节点的失效。MapReduce采用了一种基于重调度执行(re-schedule)的容错机制来确保失效任务的正确执行,但是***在重调度失效任务时,未能充分考虑任务的数据分布、重调度失效任务的性能开销延迟,因而常常一个简单的节点失效就会导致作业的整体完成时间延长50%。而对于一个采用了MapReduce计算模型的查询任务而言,如果每个输入数据片段中包含一个错误记录,将会导致整个MapReduce作业增加100%的运行时间开销,这对于SLA需求较高的应用是不能接受的,因而需要采用更加优化的容错调度算法来减少由于***故障或错误所带来的时间延迟。
发明内容
本发明采用基于检查点的主动复制方法进行任务的容错调度CROFT(Checkpoint and Replication Oriented Fault Tolerant scheduling algorithm),对任务失效和节点失效均有较好的容错支持,并且能明显减少节点失效时的作业延迟,从而提高Mapreduce作业的性能。 算法分为两个部分,分别为运行master节点上的worker节点上,默认前提是:首先,master节点会将所有的mapper任务和reducer任务进行预分配。另外,master节点地位重要且数目较少,通过为其维护多个完全一致的“热备份”,可以保证故障发生时的无缝处理。
每个计算节点在执行每个Mapper任务前,会为该任务创建一个本地local检查点文件和一个全局索引index检查点文件。本地local检查点文件负责记录当前任务的执行进度,从而能够在任务失效情况下避免重复执行过程。而全局索引index检查点文件负责记录当前任务的执行特征,从而能够在节点失效情况下根据快速构造出中间结果数据,减少任务的再执行时间。
该算法可明显减少作业的平均完成时间,算法会将发生失效节点上的任务重新调度到可用的副本工作节点(worker)上,但是与传统的MapReduce容错方法不同,失效节点上任务不会从头重新执行,而是将任务调度到可用的副本worker节点上,新的节点会根据检查点文件快速构造出中间结果数据。通过实验验证了算法的有效性,CROFT能够比Hadoop的运行时性能提升30%以上。支持容错的MapReduce任务调度算法如算法1和算法2所示。
支持容错的任务调度算法如算法1和算法2所示。
当发生任务失效时,只需读取保存在本地的检查点文件,将出错任务的状态和执行恢复到检查点处,减少了任务的重复执行时间。这样,这些中间结果就像被重新调度的mapper任务刚刚输出一样。
当发生节点失效时,master节点上的调度器负责将失效节点上被中断的mapper任务进行排队,在对任务进行重调度时,mapper任务会被重新调度到可用的副本节点上执行,副本节点能够根据索引检查点快速构造出失效节点上执行的mapper任务的中间结果数据,大大减少了重调度任务的执行时间。
如果失效节点上有正在执行的reducer任务被中断,那么将该reducer任务重新调度到备份节点上进行执行,已经完成的mapper任务所产生的中间结果已经主动复制到该备份节点,因而无须再重复执行失效节点上的mapper任务,因而会大大缩短Mapreduce作业的整体完成时间。
附图说明
图1 任务失效场景下作业完成时间比较
图2 节点失效场景下作业完成时间对比
图3 任务和节点均失效场景下作业完成时间对比
图4 节点失效场景下网络平均开销对比
图5 节点失效场景下平均存储开销对比
具体实施方式
我们通过部署Hadoop来进行算法验证,从延迟和开销来考察算法在节点和任务失效情况下的性能。延迟是影响用户体验的一个非常重要的因素,追求低延迟是大规模云环境中部署应用的重要指标。算法的原型实现是在Hadoop 0.20.1上,运行在Java1.6和HDFS文件***,HDFS的数据块大小为256MB。实验是在一个具有20个节点的HP刀片集群上进行的,节点具有四核的Xeon 2.6GHz CPU,8G内存,320G硬盘,具有2个Gigabit网卡。节点运行Ubuntu Linux操作***,并配置4个Xen虚拟机,这样将部署出80个虚拟节点,分别组成40个节点构成的hadoop集群,和40节点组成的本***集群,其中一个节点部署成master节点,其余节点部署成worker节点。目前一个集群中拥有39个虚拟化的worker节点,单个worker节点能同时运行2个mapper任务和1个reducer任务。 实验用作业是典型的过滤型任务,在海量数据中过滤出特定词条,该类任务计算量大,中间结果较少。所用测试数据为120万个全英文网页,网页平均尺寸为1MB, 通过调整split大小,一个mapper任务平均处理约120M的输入split数据,每个节点平均分到约250个任务。
MapRuduce作业是针对这组html页面的查询任务,包括三种作业类型,分别是查询词密集型任务、稀疏型任务和混合型任务。查询词密集型任务中,被查询词在目标数据中的位置比较集中;稀疏型任务中,被查询词的位置较为分散;而在混合型任务中,被查询词的位置同时具上述两种特征。
图1比较了在Mapper任务失效情况下,本算法原型和Hadoop的执行性能比较。横坐标是任务出错概率,以每100个任务的出错个数表示,纵坐标是MapReduce作业执行总时间。任务失败次数没有限制,我们可以看到,在有CROFT情况下,随着出错概率增加,作业的执行时间会有所增加,但作业完成时间相比Hadoop而言会有明显改善,总体时间优于Hadoop性能。
图2对比了在不同失效节点数量下MapReduce作业的执行时间。横坐标是失效节点数量,纵坐标是MapReduce作业执行总时间。当发生节点出错,即将该节点标记为失效,从集群中移出。实验结果发现,随着失效节点的增多,CROFT算法会显著缩短mapper任务的再执行时间,因为Hadoop简单的重调度机制会将失效节点的大量mapper任务在备份节点上重新调度执行,推迟了中间结果数据的Shuffle和reduce阶段的开始,而CROFT能够在相同时间内能完成更多的任务,会比Hadoop节约更多的时间,因而达到了比Hadoop原始机制好得多的效果。
图3比较了单个MapReduce作业的执行时间,横坐标是每100个任务出错概率和工作节点的出错概率,分别以每100个任务的出错个数和每100个节点的失效节点个数表示;纵坐标是MapReduce作业的执行完成总时间。节点出错即标记为失效,从集群中移出。实验结果显示,CROFT在有错的情况下,能缩短任务完成时间,且随着失败概率增加,能完成更多的任务。
图4是CROFT的网络开销情况,显示在节点失效场景下,重新调度MapReduce作业时,CROFT所产生的额外网络开销。横坐标是失效节点数量,纵坐标是平均网络开销。我们可以看到,在节点失效情况下,所产生的网络开销主要来自于全局index文件的主动复制,相较于Hadoop中间结果数据复制所产生的网络开销而言,该网络开销是相当有限的。
图5显示了在有20个节点失效的场景下,对三种不同类型的MapReduce作业,CROFT与Hadoop的存储开销对比情况。我们可以看到,CROFT所增加的存储开销主要用于存储全局索引文件,与Hadoop的中间结果数据存储开销相比较而言,所引入的额外存储开销非常有限。
Claims (10)
1.一种支持容错的MapReduce任务调度算法,其特征在于:算法分为两个部分,分别为运行master节点和worker节点上。
2.master节点会将所有的mapper任务和reducer任务进行预分配。
3.master节点周期性地发送探测消息,以检测worker节点的状态,判断是否有worker节点发生故障或失效。
4.每个worker节点会具有k个副本节点。
5.worker节点会为每个mapper任务创建一个本地(local)检查点文件和一个全局索引(index)检查点文件。
6.当mapper任务内存缓冲区充满时,启动一次中间结果保存操作,将中间结果数据缓存到本地文件***;缓存完成后,将输入流的读写位置和本次任务ID(positioni, map_id) 记录到local检查点文件中。
7.当mapper完成中间结果保存时,根据输入流产生key-value输出的稀疏情况,选择下述两种方法之一,将任务执行过程中的统计信息,记录到全局index检查点文件中。
8.针对产生输出的输入流,记录输入流产生key-value对的offset位置 (T1,offset)到全局index文件中,在副本节点上执行时可以直接从该offset处开始。
9.针对无输出的输入流范围,一条记录格式为(T2,offsets,offsete),offsets为该输入流范围的起始偏移,offsete为结束偏移,表示输入流在offsets,和offsete之间没有输出,当在副本节点上重新执行时可直接跳过该范围。
10.当发生任务失效时,只需读取保存在本地的检查点文件,将出错任务的状态和执行恢复到检查点处,当发生节点失效时,失效节点上的mapper任务会被重新调度到可用的副本节点上执行,副本节点能够根据索引检查点快速构造出失效节点上执行的mapper任务的中间结果数据,大大减少了重调度任务的执行时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105358926A CN103064728A (zh) | 2012-12-13 | 2012-12-13 | 一种MapReduce任务的容错调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105358926A CN103064728A (zh) | 2012-12-13 | 2012-12-13 | 一种MapReduce任务的容错调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103064728A true CN103064728A (zh) | 2013-04-24 |
Family
ID=48107361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105358926A Pending CN103064728A (zh) | 2012-12-13 | 2012-12-13 | 一种MapReduce任务的容错调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103064728A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544064A (zh) * | 2013-10-28 | 2014-01-29 | 华为数字技术(苏州)有限公司 | 云计算方法、云管理平台和客户端 |
CN104461752A (zh) * | 2014-11-21 | 2015-03-25 | 浙江宇视科技有限公司 | 一种两级故障容错的多媒体分布式任务处理方法 |
CN104717091A (zh) * | 2013-12-17 | 2015-06-17 | 纬创资通股份有限公司 | 服务器品质验证方法及其*** |
CN105137925A (zh) * | 2015-07-23 | 2015-12-09 | 上海极熵数据科技有限公司 | 自动化工业设备的作业调度方法 |
CN106462612A (zh) * | 2014-07-01 | 2017-02-22 | 萨思学会有限公司 | 用于容错通信的***和方法 |
CN106776153A (zh) * | 2015-11-25 | 2017-05-31 | 华为技术有限公司 | 作业控制方法及服务器 |
CN107122238A (zh) * | 2017-04-25 | 2017-09-01 | 郑州轻工业学院 | 基于Hadoop云计算框架的高效迭代机制设计方法 |
US9852012B2 (en) | 2015-08-26 | 2017-12-26 | International Business Machines Corporation | Scheduling mapReduce tasks based on estimated workload distribution |
CN108388748A (zh) * | 2018-03-12 | 2018-08-10 | 北京理工大学 | 一种爆轰数值仿真串行程序中断续算方法 |
CN108459922A (zh) * | 2018-03-12 | 2018-08-28 | 北京理工大学 | 一种爆轰数值仿真并行程序中断续算方法 |
CN109062673A (zh) * | 2018-11-14 | 2018-12-21 | 中国人民解放军国防科技大学 | 动态容错弹性调度方法 |
CN109814998A (zh) * | 2019-01-22 | 2019-05-28 | 中国联合网络通信集团有限公司 | 一种多进程任务调度的方法及装置 |
US10331479B2 (en) | 2017-01-13 | 2019-06-25 | Microsoft Technology Licensing, Llc | Computing on transient resources |
CN110780974A (zh) * | 2019-09-10 | 2020-02-11 | 杭州电子科技大学 | 一种移动边缘计算环境下面向工作流的容错调度方法 |
CN111045843A (zh) * | 2019-11-01 | 2020-04-21 | 河海大学 | 具有容错能力的分布式数据处理方法 |
CN111147541A (zh) * | 2019-11-18 | 2020-05-12 | 广州文远知行科技有限公司 | 基于参数服务器的节点处理方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770402A (zh) * | 2008-12-29 | 2010-07-07 | ***通信集团公司 | MapReduce***中的Map任务调度方法、设备及*** |
CN102096603A (zh) * | 2009-12-14 | 2011-06-15 | ***通信集团公司 | MapReduce***中的作业分解控制方法及调度节点设备 |
-
2012
- 2012-12-13 CN CN2012105358926A patent/CN103064728A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770402A (zh) * | 2008-12-29 | 2010-07-07 | ***通信集团公司 | MapReduce***中的Map任务调度方法、设备及*** |
CN102096603A (zh) * | 2009-12-14 | 2011-06-15 | ***通信集团公司 | MapReduce***中的作业分解控制方法及调度节点设备 |
Non-Patent Citations (2)
Title |
---|
JORGE-ARNULFO QUIANÉ-RUIZ ETC.,: "RAFT at Work:Speeding-Up MapReduce Applications under Task and Node Failures", 《ACM》 * |
流浪DE小F君: "MapReduce研究探讨体会", 《HTTP://WWW.CNBLOGS.COM/HUANGHAO1986/ARCHIVE/2008/12/07/1349682.HTML》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544064A (zh) * | 2013-10-28 | 2014-01-29 | 华为数字技术(苏州)有限公司 | 云计算方法、云管理平台和客户端 |
CN104717091B (zh) * | 2013-12-17 | 2018-04-17 | 纬创资通股份有限公司 | 服务器品质验证方法及其*** |
CN104717091A (zh) * | 2013-12-17 | 2015-06-17 | 纬创资通股份有限公司 | 服务器品质验证方法及其*** |
CN106462612A (zh) * | 2014-07-01 | 2017-02-22 | 萨思学会有限公司 | 用于容错通信的***和方法 |
CN104461752A (zh) * | 2014-11-21 | 2015-03-25 | 浙江宇视科技有限公司 | 一种两级故障容错的多媒体分布式任务处理方法 |
CN104461752B (zh) * | 2014-11-21 | 2018-09-18 | 浙江宇视科技有限公司 | 一种两级故障容错的多媒体分布式任务处理方法 |
CN105137925A (zh) * | 2015-07-23 | 2015-12-09 | 上海极熵数据科技有限公司 | 自动化工业设备的作业调度方法 |
US9852012B2 (en) | 2015-08-26 | 2017-12-26 | International Business Machines Corporation | Scheduling mapReduce tasks based on estimated workload distribution |
US9891950B2 (en) | 2015-08-26 | 2018-02-13 | International Business Machines Corporation | Scheduling MapReduce tasks based on estimated workload distribution |
US9934074B2 (en) | 2015-08-26 | 2018-04-03 | International Business Machines Corporation | Scheduling MapReduce tasks based on estimated workload distribution |
CN106776153A (zh) * | 2015-11-25 | 2017-05-31 | 华为技术有限公司 | 作业控制方法及服务器 |
US10331479B2 (en) | 2017-01-13 | 2019-06-25 | Microsoft Technology Licensing, Llc | Computing on transient resources |
CN107122238B (zh) * | 2017-04-25 | 2018-05-25 | 郑州轻工业学院 | 基于Hadoop云计算框架的高效迭代机制设计方法 |
CN107122238A (zh) * | 2017-04-25 | 2017-09-01 | 郑州轻工业学院 | 基于Hadoop云计算框架的高效迭代机制设计方法 |
CN108388748A (zh) * | 2018-03-12 | 2018-08-10 | 北京理工大学 | 一种爆轰数值仿真串行程序中断续算方法 |
CN108459922A (zh) * | 2018-03-12 | 2018-08-28 | 北京理工大学 | 一种爆轰数值仿真并行程序中断续算方法 |
CN109062673A (zh) * | 2018-11-14 | 2018-12-21 | 中国人民解放军国防科技大学 | 动态容错弹性调度方法 |
CN109814998A (zh) * | 2019-01-22 | 2019-05-28 | 中国联合网络通信集团有限公司 | 一种多进程任务调度的方法及装置 |
CN110780974A (zh) * | 2019-09-10 | 2020-02-11 | 杭州电子科技大学 | 一种移动边缘计算环境下面向工作流的容错调度方法 |
CN110780974B (zh) * | 2019-09-10 | 2022-03-01 | 杭州电子科技大学 | 一种移动边缘计算环境下面向工作流的容错调度方法 |
CN111045843A (zh) * | 2019-11-01 | 2020-04-21 | 河海大学 | 具有容错能力的分布式数据处理方法 |
CN111045843B (zh) * | 2019-11-01 | 2021-09-28 | 河海大学 | 具有容错能力的分布式数据处理方法 |
CN111147541A (zh) * | 2019-11-18 | 2020-05-12 | 广州文远知行科技有限公司 | 基于参数服务器的节点处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064728A (zh) | 一种MapReduce任务的容错调度方法 | |
Almeida et al. | ChainReaction: a causal+ consistent datastore based on chain replication | |
KR101259557B1 (ko) | 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법 | |
Ibrahim et al. | Evaluating mapreduce on virtual machines: The hadoop case | |
Meneses et al. | Team-based message logging: Preliminary results | |
Dahiphale et al. | An advanced mapreduce: cloud mapreduce, enhancements and applications | |
CN105871603B (zh) | 一种基于内存数据网格的实时流式数据处理失效恢复***及方法 | |
Shen et al. | Fast failure recovery in distributed graph processing systems | |
CN103970585A (zh) | 创建虚拟机的方法及装置 | |
CN103516736A (zh) | 分布式缓存***的数据恢复方法及装置 | |
Li et al. | Tachyon: Memory throughput i/o for cluster computing frameworks | |
CN108038201B (zh) | 一种数据整合***及其分布式数据整合*** | |
CN105320773A (zh) | 一种基于Hadoop平台的分布式重复数据删除***和方法 | |
CN103793442A (zh) | 空间数据的处理方法及*** | |
Xia et al. | A case for tracking and exploiting inter-node and intra-node memory content sharing in virtualized large-scale parallel systems | |
CN104102460A (zh) | 一种基于云计算的内存管理方法及装置 | |
CN105468296A (zh) | 基于虚拟化平台的无共享存储管理方法 | |
Xu et al. | SelectiveEC: Towards balanced recovery load on erasure-coded storage systems | |
Kavitha et al. | Task failure resilience technique for improving the performance of MapReduce in Hadoop | |
Zhu et al. | Asc: Improving spark driver performance with automatic spark checkpoint | |
Wang et al. | Deister: A light-weight autonomous block management in data-intensive file systems using deterministic declustering distribution | |
Gomez et al. | Hierarchical clustering strategies for fault tolerance in large scale HPC systems | |
Zhang et al. | LayerMover: Fast virtual machine migration over WAN with three-layer image structure | |
CN105871987A (zh) | 数据写入的高可用***及方法 | |
CN105183738A (zh) | 一种基于血统和检测点技术的分布式内存文件*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130424 |