2013-10-23 99 views
1

Programattically查找失败TaskAttempts如果我进入任务跟踪器,并期待在一个正在运行的作业,我可以很容易地看到运行/完成/失败/终止任务的尝试,并深入了解他们每个人的详细信息。的运行Hadoop的工作

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

回答

1

有可能是一个更好的办法,但是这是我能想到的:

使用RunningJob下面的方法获取TaskAttemptID名单:

TaskCompletionEvent[] getTaskCompletionEvents(int startFrom) 

,然后得到每个任务的状态以下方法TaskCompletionEvent

TaskCompletionEvent.Status getTaskStatus() 
+0

确认任务完成事件代表已完成的任务尝试。这是令人困惑的,因为大多数文档都暗示代表完成的任务而不是任务尝试。 –