Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Hadoop >> mail # user >> RE: MAP_INPUT_RECORDS counter in the reducer


Copy link to this message
-
RE: MAP_INPUT_RECORDS counter in the reducer
Or you do the calculation in the reducer close() method, even though I am not sure in the reducer you can get the Mapper's count.
But even you can't, here is what can do:1) Save the JobConf reference in your Mapper conf metehod2) Store the Map_INPUT_RECORDS counter in the configuration object as your own properties, in the close() method of the mapper3) Retrieve that property in the reducer close() method, then you have both numbers at that time.
Yong

Date: Tue, 17 Sep 2013 09:49:06 -0400
Subject: Re: MAP_INPUT_RECORDS counter in the reducer
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]

In the normal configuration, the issue here is that Reducers can start before all the Maps have finished so it is not possible to get the number (or make sense of it even if you are able to,)

Having said that, you can specifically make sure that Reducers don't start until all your maps have completed. It will of course slow down your job. I don't know whether with this option it will work or not, but you can try (until experts have some advise already.)

Regards,Shahab

On Tue, Sep 17, 2013 at 6:09 AM, Yaron Gonen <[EMAIL PROTECTED]> wrote:

Hi,Is there a way for the reducer to get the total number of input records to the map phase?
For example, I want the reducer to normalize a sum by dividing it in the number of records. I tried getting the value of that counter by using the line:

context.getCounter(Task.Counter.MAP_INPUT_RECORDS).getValue();

in the reducer code, but I got 0.
Thanks!Yaron