[ 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.