MapReduce模型将作业分解成任务,然后并行地运行任务以使作业的整体执行时间少于各个任务顺序执行的时间。这使作业执行时间对于运行缓慢的任务很敏感,因为只运行一个缓慢的任务会使整个作业所用的时间远远长于执行其他任务的时间。当一个作业由几百或几千个任务组成时,可能出现少数“拖后腿”的任务,这是很常见的。

任务执行缓慢可能有多种原因,包括硬件老化或软件配置错误,但是,检测具体原因很困难,因为任务总能够成功完成,尽管比预计执行时间长。Hadoop不会尝试诊断或修复执行慢的任务,相反,在一个任务运行比预期慢的时候,它会尽量检测,并启动另一个相同的任务作为备份。这就是所谓的任务的“推测执行”(speculative execution)。

必须认识到一点:如果同时启动两个重复的任务,它们会互相竞争,导致推测执行无法工作。这对集群资源是一种浪费。相反,调度器跟踪作业中所有相同类型(map和reduce)任务的进度,并且仅仅启动运行速度明显低于平均水平的那一小部分任务的推测副本。一个任务成功完成后,任何正在运行的重复任务都将被中止,因为已经不再需要它们了。因此,如果原任务在推测任务前完成,推测任务就会被终止;同样,如果推测任务先完成,那么原任务就会被中止。

推测执行是一种优化措施,它并不能使作业的运行更可靠。如果有一些软件缺陷会造成任务挂起或运行速度减慢,依靠推测执行来避免这些问题显然是不明智的,并且不能可靠地运行,因为相同的软件缺陷可能会影响推测式任务。应该修复软件缺陷,使任务不会挂起或运行速度减慢。

在默认情况下,推测执行是启用的。可以基于集群或基于每个作业,单独为map任务和reduce任务启用或禁用该功能。相关属性如下:

属性名称 类型 默认值 描述
mapreduce.map.speculative boolean true 如果任务运行变慢,该属性决定着是否要启动map任务的另外一个实例
mapreduce.reduce.speculative boolean true 如果任务运行变慢,该属性决定着是否要启动reduce任务的另一个实例
Yarn.app.mapreduce.am.job.speculator Class Org.apache.hadoop.mapreduce.v2.app.speculate.DefaultSpeculator Speculator类实现推测执行策略(只针对MapReduce 2)
Yarn.app.mapreduce.am.job.estimator.class Class Org.apache.hadoop.mapreduce.v2.app.speculate.LegacyTaskRuntimeEstimator Speculator实例使用的TaskRuntimeEstimator的实现,提供任务运行时间的估计值(只针对MapReduce 2)

为什么会想到关闭推测执行?推测执行的目的是减少作业执行时间,但这是以集群效率为代价的。在一个繁忙的集群中,推测执行会减少整体的吞吐量,因为冗余任务在执行时会减少作业的执行时间。因此,一些集群管理员倾向于在集群上关闭此选项,而让用户根据个别作业需要而开启该功能。Hadoop老版本尤其如此,因为在调度推测任务时,会过度使用推测执行方式。

对于reduce任务,关闭推测执行是有益的,因为任意重复的reduce任务都必须将取得map输出作为最先的任务,这可能会大幅度地增加集群上的网络传输。

关闭推测执行的另一种情况是为了非幂等(nonidempotent)任务。然而在很多情况下,将任务写成幂等的并使用OutputCommitter来提升任务成功时输出到最后位置的速度,这是可行的。

完毕。

MapReduce任务的推测执行相关推荐

  1. Hadoop之资源调度器与任务推测执行

    Hadoop之资源调度器 目录 资源调度器概述 先进先出调度器(FIFO) 容量调度器(Capacity Scheduler) 公平调度器(Fair Scheduler) 任务的推测执行 1. 资源调 ...

  2. Forerunner:首个面向“多未来”的推测执行技术

    来源:微软研究院AI头条 编者按:10月26-29日,系统领域的全球顶会 SOSP 2021 在线上举办.在本届大会上,微软亚洲研究院研究员陈洋.郭众鑫.李润怀(实习生,浙江大学).陈硕.周礼栋.张宪 ...

  3. 87-Spark推测执行spark.speculation

    1. 背景 hadoop的推测执行 推测执行(Speculative Execution)是指在分布式集群环境下,因为程序BUG,负载不均衡或者资源分布不均等原因,造成同一个job的多个task运行速 ...

  4. Spark 推测执行 /spark.speculation=true /spark.speculation.quantile=0.75/spark.speculation.multiplier=1.5

    在Spark中任务会以DAG图的方式并行执行,每个节点都会并行的运行在不同的executor中,但是有的任务可能执行很快,有的任务执行很慢,比如网络抖动.性能不同.数据倾斜等等.有的Task很慢就会成 ...

  5. 大数据培训课程Yarn资源调度器任务的推测执行

    任务的推测执行 1.作业完成时间取决于最慢的任务完成时间 一个作业由若干个Map任务和Reduce任务构成.因硬件老化.软件Bug等,某些任务可能运行非常慢.大数据培训 思考:系统中有99%的Map任 ...

  6. 关于 CPU 推测执行漏洞,您需要知道这些

    推测执行 (speculative execution) 是当今主流处理器(包括 AMD.ARM 和 Intel)中广泛采用的一项优化技术.其基本思路是利用处理器的空闲时间提前执行一些将来 " ...

  7. 智慧出行/spark Streaming-Dstream流优化:1.消费并行度,2.序列化,3.限流,压背,冷启4.cpu空转时间,5.不要在代码中判断这个表是否存在,6.推测执行7.开启动态资源分配

    1.设置合理的消费并行度 最优的方案是:kafka分区数:broker *3/6/9 kafka分区能不能增加,能不能减少? kafka分区数是可以增加的,但是不能减少 2.序列化 java的序列化, ...

  8. Hadoop推测执行(以空间换取时间)

    1. 背景 Speculative Task,又叫推测式任务,是指在分布式集群环境下,因为程序bug,负载不均衡或者资源分布不均,造成同一个job的多个task运行速度不一致,有的task运行速度明显 ...

  9. Hadoop系列之五:MapReduce进阶(2)

    1.MapReduce作业.集群及其逻辑架构 前文已经描述,MapReduce是一个编程框架,它为程序员提供了一种快速开发海量数据处理程序的编程环境,并能够让基于这种机制开发出的处理程序以稳定.容错的 ...

  10. 【Hadoop】MapReduce

    MapReduce是一个分布式计算框架,支持编写程序处理大数据集. Hadoop 0.20.0以及之前版本,MapReduce由JobTracker和TaskTracker组成.JobTracker是 ...

最新文章

  1. latex 表格单元格上下左右居中_Excel文字对齐技巧:学会这6种方式,快速整理规范表格...
  2. 设计优秀API的五大规则
  3. 小程序上传图本地片wx.chooseImage
  4. Rails不用localhost访问的时候很慢
  5. 拥2180亿美元收入 苹果成全球最大IT企业
  6. 摇骰子、抽奖转盘酒桌游戏 人生重启模拟器小程序源码分享-开通流量主躺着赚钱
  7. 饿了么移动APP的架构演进
  8. 树莓派网易云音乐播放器
  9. python 进行照片分类_python 照片文件名分类
  10. 关于表格冻结行和列的方法
  11. 谷歌:AI系统需要“自我怀疑”能力,方能作出更好的决定!
  12. 计算机硬件广告语,硬件防毒广告宣传语
  13. 六(1) Python之列表
  14. js底层原理作用域和作用域链
  15. 计算机桌面文件能单独设密码吗,电脑上文件夹怎么加密_桌面文件夹怎么加密码...
  16. Linux下默认字体是什么,linux默认字体是什么
  17. 开源巨献:Google最热门的40款开源项目
  18. CSC在卢森堡新增两位高管,并获得可拓展其服务范围的基金管理和存托牌照
  19. 2021考研——复习规划(英语篇)
  20. 计算机网络05局域网

热门文章

  1. java使用keytool 的ssl证书的导入、查看与删除——彻底解决unable to find valid certification path to requested target(好文章!)
  2. 大规模知识图谱数据存储实战解析
  3. python背包问题求最大价值 | 动态规划
  4. THinkphp教程网址
  5. linux 卸载二进制包,Ubuntu19.10系统的软件安装与卸载命令
  6. #NI卸载修复工具,可以解决安装过程中出现“应用程序的安装程序可能已损坏”的问题。
  7. samtools faid产生的.fai文件详解
  8. BrowserslistError: Unknown version 67 of android
  9. android+美拍加表情,美拍怎么添加表情文字在哪
  10. 深入理解操作系统实验——bomb lab(作弊方法2)