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

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


Here's a first stab at an algorithm to fix this:

*  Let's define the "home stretch" of shuffling, from the perspective of a 
reducer, as the last X% of the map shards it needs to fetch. Maybe that's 3% or 
4%.
* If during the home stretch, a map task enters the penalty box and stays there 
for some number of seconds (let's say 30), the reducer can send a message back 
to the JobTracker voting that the task be marked as "failed for being too slow."
* The JobTracker requires a quorum of still-shuffling reducers to vote this 
way. The quorum might be, say, 10%. This way if only two reducers are still 
waiting, either one of them is a quorum by itself. But if 40 reducers are 
shuffling, it will take the consensus of a few reducers that a mapper is indeed 
too slow.
* If enough votes are given, the JobTracker blacklists a TaskTracker from the 
job, marks all its map task attempts as failed, and restarts all the map tasks 
from that node, on other nodes.


> 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