You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Owen O'Malley (JIRA)" <ji...@apache.org> on 2009/03/17 23:45:50 UTC

[jira] Resolved: (HADOOP-5474) All reduce tasks should be re-executed when tasktracker with a completed map task failed

     [ https://issues.apache.org/jira/browse/HADOOP-5474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Owen O'Malley resolved HADOOP-5474.
-----------------------------------

    Resolution: Won't Fix

The cost of this change would be huge. Basically, any node going down or a crc failure in shuffle would cause you to kill all currently running reduces. That is unacceptable. Your application needs to be tolerant of reexecution of tasks. That is a fundamental constraint of map/reduce programming. In order to make your example work, the map could use the hash of the input split as the seed to the random number generator. That way, re-executions will have consistent behavior.

> All reduce tasks should be re-executed when tasktracker with a completed map task failed
> ----------------------------------------------------------------------------------------
>
>                 Key: HADOOP-5474
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5474
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>    Affects Versions: 0.19.0
>         Environment: CentOS 5,
> hadoop-0.19.0
>            Reporter: Leitao Guo
>            Priority: Critical
>   Original Estimate: 96h
>  Remaining Estimate: 96h
>
> When a tasktracker with a completed map task failed, the map task will be re-exectuted, and all reduce tasks that haven't read the data from that tasktracker should be re-executed. But the reduce task that have read the data from that tasktracker will not be re-executed. 
> In this situation, if the outputs of multi map tasks on the same dataset are different, for example outputting a random number, the outputs of maptask and the re-executed maptask will probably are different. Then the re-executed reduce tasks will read the new output of the re-executed maptask, but reduce tasks that have read the data from the failed tasktracker have read the old output. This probably will cause correctness of the result.
> A recommended solution is that all reduce tasks should be re-executed if one tasktracker with a completed map task failed.
> Any comments? thanks!

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.