Jobtracker Web UI から、「Failed/Killed Task Attempts」という列が表示されます。
それらの違いを知りたいです。「失敗したもの」は、いくつかの再試行の後に最終的に実際に失敗したタスクを意味すると思います(したがって、回復はまったく行われませんでしたか?)「強制終了されたもの」は、(タイムアウトなどにより)強制終了されたタスクを意味しますが、再試行される可能性がありますか?
Hadoop が独自の判断でタスクを強制終了できる理由はいくつかあります。a
) タイムアウト中にタスクが進行状況を報告しない (デフォルトは 10 分)
b) FairScheduler または CapacityScheduler が他のプール (FairScheduler) またはキュー (CapacityScheduler) 用のスロットを必要とする。
c) 投機的実行により、タスクが別の場所で完了したため、タスクの結果が不要になります。
Hadoopは「投機的実行」を使用します。同じタスクを複数のボックスで開始できます。最初に終了したものが勝ち、他のコピーは殺されます。
失敗したタスクは、エラーが発生したタスクです。
失敗したタスク 1. バグのある map または reduce コード (実行時例外エラー) 2. jvm の突然の終了 3. ハングしたタスク (有効になっている場合、投機的実行をトリガーする可能性があります)
強制終了されたタスク 1. 投機的実行により、長時間実行されているジョブが強制終了されます。2. ユーザー自身がジョブを強制終了した場合。3.タスクトラッカーの失敗