以编程方式查找正在运行的Hadoop作业的失败TaskAttempts

时间:2013-10-23 19:39:47

标签: hadoop mapreduce

如果我进入任务跟踪器并查看正在运行的作业,我可以轻松查看正在运行/已完成/失败/已杀死的任务尝试,并深入了解每个任务。

我希望能够以编程方式访问此信息,但JobClient类似乎没有任何方法可以直接访问此信息。 JobClient.getMapTaskReports()和JobClient.getReduceTaskReports()函数返回的TaskReport类看起来最接近,但这似乎只有关于运行或完成任务尝试的信息。有没有办法访问有关给定任务的所有任务尝试的信息?

1 个答案:

答案 0 :(得分:1)

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

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

 TaskCompletionEvent[] getTaskCompletionEvents(int startFrom)

然后,从TaskCompletionEvent的以下方法获取每个任务状态:

TaskCompletionEvent.Status getTaskStatus()