[ 
https://issues.apache.org/jira/browse/HADOOP-5985?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12720376#action_12720376
 ] 

Aaron Kimball commented on HADOOP-5985:
---------------------------------------

Hong,

Good point regarding where reducers pull from. Since multiple waves of reducers 
are supported, it sounds reasonable to me.

So maybe the algorithm changes to this; we modify speculative execution in the 
following way:

* If a map task is launched multiple times via spec. ex., all copies that 
succeed are eligible to serve reducers concurrently, not just one such copy.
* The completion of a map task's processing does not cause speculative copies 
to be killed; they also run to completion.
* Mapper TaskTrackers report back to the JT (during their heartbeat) the number 
of reduce shards served / available. If any set of mappers are falling "too far 
behind" the other mappers (e.g., most mappers have served 900/1000 shards, but 
a couple have only served 50/1000), then we launch additional copies of those 
mapper tasks on other nodes.
* Reducers are advised of additional alternate locations to pull a particular 
map shard. If multiple sources are available, they randomly choose one. If that 
source is too slow, it tries a different copy.


This gets rid of the need for reducers to "vote" and influence the JT's 
behavior directly.



> A single slow (but not dead) map TaskTracker impedes MapReduce progress
> -----------------------------------------------------------------------
>
>                 Key: HADOOP-5985
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5985
>             Project: Hadoop Core
>          Issue Type: Bug
>    Affects Versions: 0.18.3
>            Reporter: Aaron Kimball
>
> We see cases where there may be a large number of mapper nodes running many 
> tasks (e.g., a thousand). The reducers will pull 980 of the map task 
> intermediate files down, but will be unable to retrieve the final 
> intermediate shards from the last node. The TaskTracker on that node returns 
> data to reducers either slowly or not at all, but its heartbeat messages make 
> it back to the JobTracker -- so the JobTracker doesn't mark the tasks as 
> failed. Manually stopping the offending TaskTracker works to migrate the 
> tasks to other nodes, where the shuffling process finishes very quickly. Left 
> on its own, it can take hours to unjam itself otherwise.
> We need a mechanism for reducers to provide feedback to the JobTracker that 
> one of the mapper nodes should be regarded as lost.

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

Reply via email to