如果我进入任务跟踪器并查看正在运行的作业,则可以轻松地看到正在运行/已完成/失败/被杀死的任务尝试,并深入了解有关它们的更多信息。

我也希望能够以编程方式访问此信息,但是JobClient类似乎没有任何直接访问此信息的方法。 JobClient.getMapTaskReports()和JobClient.getReduceTaskReports()函数返回的TaskReport类似乎是最接近的东西,但这似乎只包含有关正在运行或已完成的任务尝试的信息。有没有一种方法可以访问有关给定任务的所有任务尝试的信息?

最佳答案

也许有更好的方法,但这是我能想到的:

使用以下RunningJob方法获取TaskAttemptID的列表:

 TaskCompletionEvent[] getTaskCompletionEvents(int startFrom)

然后,从以下TaskCompletionEvent方法获取每个任务的状态:
TaskCompletionEvent.Status getTaskStatus()

10-06 03:45