Straggle(掉队者)是指那些跑的很慢但最终会成功完成的任务。一个掉队的Map任务会阻止Reduce任务开始执行。
Hadoop不能自动纠正掉队任务,但是可以识别那些跑的比较慢的任务,然后它会产生另一个等效的任务作为备份,并使用首先完成的那个任务的结果,此时另外一个任务则会被要求停止执行。这种技术称为推测执行(speculative execution)。
默认使用推测执行。
属性 | 描述 |
---|---|
mapreduce.map.speculative | 控制Map任务的推测执行(默认true) |
mapreduce.reduce.speculative | 控制Reduce任务的推测执行(默认true) |
mapreduce.job.speculative.speculativecap | 推测执行功能的任务能够占总任务数量的比例(默认0.1,范围0~1) |
mapreduce.job.speculative.slownodethreshold | 判断某个TaskTracker是否适合启动某个task的speculative task(默认1) |
mapreduce.job.speculative.slowtaskthreshold | 判断某个task是否可以启动speculative task(默认1) |