TaskTracker 所執行的每個小工作,就是 Task attempt (嘗試執行 Task)。
亦即每個 mapper 或 reducer 就是 Task attempt。
由於機器可能會跑到一半掛點,java 可能當掉,程式可能錯誤。
所以 Task attempt 總個數會大於 mapper + reducer 總個數。
此外,遇到執行太慢的 Task,JobTracker 會找兩台 TaskTracker 執行同一個 mapper 或 reducer task。
一旦其中一個先完成,另一個就會被 KILL 掉。這就是 Failed 跟 Killed 的差異所在。
Failed 是 mapper 或 reducer 程式有執行上錯誤的狀況,因此若看 Log 會看到 Java 的 Trace 紀錄。
Killed 是相同一個 task 給兩台 TaskTracker 執行做競爭,當其中一台提早執行完畢時,另一台就會被 Killed。
[Reference]
http://forum.hadoop.tw/viewtopic.php?f=7&t=1794
沒有留言:
張貼留言