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) |