我正在尝试以编程方式确定在将地图缩减作业提交到hadoop时,哪些任务尝试在我的群集中的哪个任务跟踪器上运行。我发现我可以从JobClient获取大部分任务数据,如下所示:
jobClient.getMapTaskReports(jobID)
但不是任务尝试成功的计算机的主机名。有人知道如何从任务尝试ID中获取主机名吗?
答案 0 :(得分:5)
提交时,JobClient会为您提供所谓的NetworkedJob。它有一个名为getTaskCompletionEvents
的方法。
这会返回一个TaskCompletionEvent
发生的数组contain the HTTP address of the tasktracker that ran a task。
从那时起,您可以从URL解析主机。