map reduce ジョブを Hadoop に送信するときに、クラスター内のどのタスクトラッカーでどのタスク試行が実行されるかをプログラムで判断しようとしています。次のように、JobClient からほとんどのタスク データを取得できることがわかりました。
jobClient.getMapTaskReports(jobID)
タスクの試行が成功したマシンのホスト名ではありません。タスク試行IDからホスト名を取得する方法を知っている人はいますか?
JobClientは、送信時にいわゆるNetworkedJobを提供します。というメソッドがありgetTaskCompletionEvents
ます。
TaskCompletionEvent
これにより、発生した配列が返されます。これらには、タスクを実行した tasktracker の HTTP アドレスが含まれています。
その時点から、URL からホストを解析できます。