I'm using CDH3u0 and streaming, so this is hadoop-0.20.2 at patch level 923.21 
(cf https://ccp.cloudera.com/display/DOC/Downloading+CDH+Releases).  

I modified the streaming code to confirm that it is calling progress when I ask 
it to and which Reporter class is actually being used.  It's the 
Task.TaskReporter class for map and reduce but the Reporter.NULL class for 
combine (both map-side and reduce-side combines).  It appears to be the mapred 
layer (as opposed to streaming) that sets the reporter, so this should affect 
non-streaming jobs as well.

Chris

On Nov 4, 2011, at 9:11 AM, Robert Evans wrote:

> There was a change that went into 0.20.205 
> https://issues.apache.org/jira/browse/MAPREDUCE-2187 where after so many 
> inputs to the combiner progress is automatically reported.  I looked through 
> the code for 0.20.205 and from what I can see the CombineOutputCollector 
> should be getting an instance of TaskReporter.  What version of Hadoop are 
> you running?  Are you using the old APIs in the mapred package or the newer 
> APIs in the mapreduce java package?
> 
> --Bobby Evans
> 
> On 11/4/11 1:20 AM, "Christopher Egner" <ceg...@apple.com> wrote:
> 
> Hi all,
> 
> Let me preface this with my understanding of how tasks work.
> 
> If a task takes a long time (default 10min) and demonstrates no progress, the 
> task tracker will decide the process is hung, kill it, and start a new 
> attempt.  Normally, one uses a Reporter instance's progress method to provide 
> progress updates and avoid this. For a streaming mapper, the Reporter class 
> is org.apache.hadoop.mapred.Task$TaskReporter and this works well.  Streaming 
> is even set up to take progress, status, and counter updates from stderr, 
> which is really cool.
> 
> However, for combiner tasks, the class is 
> org.apache.hadoop.mapred.Reporter$1.  The first subclass in this particular 
> java file is the Reporter.NULL class, which ignores all updates.  So even if 
> a combiner task is updating its reporter in accordance with docs (see 
> postscript), its updates are ignored and it dies at 10 minutes.  Or one sets 
> mapred.task.timeout very high, allowing truly hung tasks to go unrecognised 
> for much longer.
> 
> At least this is what I've been able to put together from reading code and 
> searching the web for docs (except hadoop jira which has been down for a 
> while - my bad luck).
> 
> So am I understanding this correctly?  Are there plans to change this?  Or 
> reasons that combiners can't have normal reporters associated to them?
> 
> Thanks for any help,
> Chris
> 
> http://hadoop.apache.org/common/docs/r0.20.2/mapred_tutorial.html#Reporter
> http://www.cloudera.com/blog/2009/05/10-mapreduce-tips/ (cf tip 7)
> http://hadoop.apache.org/common/docs/r0.18.3/streaming.html#How+do+I+update+counters+in+streaming+applications%3F
> http://hadoop.apache.org/common/docs/r0.20.0/mapred-default.html  (cf 
> mapred.task.timeout)
> 

Reply via email to