MapReduce学习笔记(2) ——推测执行

本文探讨了Hadoop中推测执行机制的必要性及其工作原理。介绍了如何通过启动备份任务来优化作业运行时间,避免因部分任务运行缓慢而拖慢整体进度。同时,讨论了推测执行的配置属性及其实现的局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来源:《Hadoop权威指南(第2版)》

 

1. 为什么需要推测执行?

MapReduce将作业分解成多个任务并行运行的机制,决定了作业运行的总体时间对运行缓慢的任务比较敏感。为了尽量避免运行缓慢的任务对作业运行时间“托后腿”的情况,需要启动作业的推测执行。
 

2. 什么是推测执行?

当Hadoop检测到一个任务运行比预期慢时,它会启动一个相同的任务进行备份。这就是任务的推测执行。  当原任务与推测任务其中之一完成后,便立即停止另一个任务。
 

3. 推测执行的属性设置

推测执行可以基于集群,也可以基于某个作业。  

属性名字描述默认值
mapred.map.tasks.speculative.execution如果任务运行较慢,决定是否运行相应Map任务的推测执行TRUE
mapred.reduce.tasks.speculative.execution如果任务运行较慢,决定是否运行相应Reduce任务的推测执行TRUE

 

两点说明:
  • 任务运行缓慢的原因有多种,可能是硬件老化,也可能是软件问题。若是软件问题,需优化程序,推测执行不能从根本上解决问题。
  • 推测执行是利用资源来优化时间的一种策略。若资源本来就紧张的情况下,是无法通过推测执行来优化系统性能的。
  • 推测执行会降低集群容量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值