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

Chris Douglas commented on HADOOP-4714:
---------------------------------------

bq. Although this would solve the issue for our particular case, I can imagine 
a situation (e.g. single reducer with highly aggregated huge records) where 
this would not help, i.e. the time component needs to be factored into the 
progress reporting. Progress should always be reported at smaller intervals 
than the timeout which is configurable and could be a small number.

Fair point. Still, it's far from the only profile that makes unobserved 
progress and the current approach isn't guaranteed to work in this hypothetical 
case, either. Balancing performance against accuracy in the current model 
admits the possibility of spurious timeouts by definition. The heuristics we 
use- every N records out of the merge, every partition, etc.- are, as you point 
out, not guaranteed to fit each job's profile, but they're usually good enough 
without being too expensive. Continuing to refine them is a stop-gap, 
admittedly.

The TaskTracker could try to look for external signs of progress in tasks it 
suspects are stuck (e.g. spills/merges generated between heartbeats), but that 
mistakes MapTask side-effects for task health. Adding a thread to poll for 
progress within the task adds modest benefits, but the cost in complexity (and 
likely performance) is discouraging. It also separates the checks for progress 
from the code effecting it, making it harder to maintain. While it's possible 
to imagine an adaptive system that would sample the frequency of status updates 
generated from each component and tune each threshold to the particular job, 
that's a long, long way from what is currently in place.

For the scope of this JIRA, I think it's sufficient to flag progress after each 
partition. Doing more reporting out of the merge would be OK, but I see no 
reason to enshrine the N records/progress update heuristic.

> map tasks timing out during merge phase
> ---------------------------------------
>
>                 Key: HADOOP-4714
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4714
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>    Affects Versions: 0.18.1
>            Reporter: Christian Kunz
>            Assignee: Jothi Padmanabhan
>         Attachments: hadoop-4714.patch
>
>
> With compression of transient data turned on some parts of the merge phase 
> seem to not report progress enough.
> We see a lot of task failures during the merge phase, most of them timing out 
> (even with a 20 min timeout)

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