什么可以导致hadoop开始第二次任务尝试,即使第一次尝试仍在运行?

时间:2012-09-13 14:18:46

标签: hadoop

我正在使用Amazon EMR(Hadoop 0.20.205),并注意到我的一个任务处于一种奇怪的状态(见下文)。即使我的第一次尝试仍在运行,第二次任务尝试也已启动。我的其他任务都完成了一次任务尝试。可能是什么原因?

   +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   |            Task Attempts             | Machine                     | Status  | Progress | Start Time           | Shuffle Finished                    | Sort Finished               | Finish Time | Errors | Task Logs | Counters | Actions | 
   |--------------------------------------+-----------------------------+---------+----------+----------------------+-------------------------------------+-----------------------------+-------------+--------+-----------+----------+---------|
   |                                      |                             |         | 66.69%   |                      |                                     |                             |             |        | Last 4KB  |          |         | 
   | attempt_201209121354_0021_r_000017_0 | /default-rack/xxx...        | RUNNING |          | 13-Sep-2012 13:10:28 | 13-Sep-2012 13:16:48 (6mins, 19sec) | 13-Sep-2012 13:16:58 (9sec) |             |        | Last 8KB  | 0        |         | 
   |                                      |                             |         | +------+ |                      |                                     |                             |             |        | All       |          |         | 
   |                                      |                             |         | +------+ |                      |                                     |                             |             |        |           |          |         |           
   |--------------------------------------+-----------------------------+---------+----------+----------------------+-------------------------------------+-----------------------------+-------------+--------+-----------+----------+---------|
   |                                      |                             |         | 66.69%   |                      |                                     |                             |             |        | Last 4KB  |          |         | 
   | attempt_201209121354_0021_r_000017_1 | /default-rack/xxx...        | RUNNING |          | 13-Sep-2012 13:14:55 | 13-Sep-2012 13:18:58 (4mins, 3sec)  | 13-Sep-2012 13:19:00 (2sec) |             |        | Last 8KB  | 0        |         | 
   |                                      |                             |         | +------+ |                      |                                     |                             |             |        | All       |          |         | 
   |                                      |                             |         | +------+ |                      |                                     |                             |             |        |           |          |         |           
   +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

2 个答案:

答案 0 :(得分:3)

Hadoop默认使用speculative execution。它将启动同一任务的两个实例,一旦完成,它将杀死尚未完成的任务。任务完成后,Web UI通常会从作业的网页中删除推测任务(至少在20.2中)。

答案 1 :(得分:1)

首先,您启用了推测性执行(如Matt所示,默认情况下处于启用状态)。 现在,如果您的Hadoop服务器并非完全相同且某些服务器比其他服务器更新/更快,那么推测执行非常有用。

在我们较旧的Hadoop集群中,我发现很多情况下第二个实例的完成速度比原始版本快。