Hello,

Thanks everyone for helping me. Here are my observations:

Devaraj - I didn't find any bug in the log files. In fact, none of the
print statements in my reducer are even appearing in the logs. I can
share the syslogs if you want. I didn't paste them here so that the
email doesn't get cluttered.

Kasi -  Thanks for the suggestion. I tired but got the same output.
The system just created 1 reducer as my test data set is small.

Bejoy -  Can you please advice how I can pinpoint whether the
IdentityReducer is being used or not.

Steven - I tried compiling with your suggestion. However if I put a
@Override on top of my reduce method, I get the following error:
"method does not override or implement a method from a supertype"
The code compiles without it. I do have an @Override on top of my map
method though.
public class Reduce_First extends Reducer<IntWritable, Text,
NullWritable, Text>
{
    public void reduce (IntWritable key, Iterator<Text> values,
Context context) throws IOException, InterruptedException
    {
        while ( values.hasNext() )
               // Process

        // Finally emit
    }
}

Thanks a lot again!
Warm regards
Arko


On Tue, Apr 17, 2012 at 3:19 PM, Steven Willis <swil...@compete.com> wrote:
> Try putting @Override before your reduce method to make sure you're
> overriding the method properly. You’ll get a compile time error if not.
>
>
>
> -Steven Willis
>
>
>
>
>
> From: Bejoy KS [mailto:bejoy.had...@gmail.com]
> Sent: Tuesday, April 17, 2012 10:03 AM
>
>
> To: mapreduce-user@hadoop.apache.org
> Subject: Re: Reducer not firing
>
>
>
> Hi Akro
> From the naming of output files, your job has the reduce phase. But the
> reducer being used is the IdentityReducer instead of your custom reducer.
> That is the reason you are seeing the same map output in the output files as
> well. You need to evaluate your code and logs to see why IdentityReducer is
> being triggered.
>
> Regards
> Bejoy KS
>
> Sent from handheld, please excuse typos.
>
> ________________________________
>
> From: kasi subrahmanyam <kasisubbu...@gmail.com>
>
> Date: Tue, 17 Apr 2012 19:10:33 +0530
>
> To: <mapreduce-user@hadoop.apache.org>
>
> ReplyTo: mapreduce-user@hadoop.apache.org
>
> Subject: Re: Reducer not firing
>
>
>
> Could you comment the property where you are setting the number of reducer
> tasks and see the behaviour of the program once.
> If you already tried could you share the output
>
> On Tue, Apr 17, 2012 at 3:00 PM, Devaraj k <devara...@huawei.com> wrote:
>
> Can you check the task attempt logs in your cluster and find out what is
> happening in the reduce phase. By default task attempt logs present in
> $HADOOP_LOG_DIR/userlogs/<job-id>/. There could be some bug exist in your
> reducer which is leading to this output.
>
>
> Thanks
> Devaraj
>
> ________________________________________
> From: Arko Provo Mukherjee [arkoprovomukher...@gmail.com]
>
> Sent: Tuesday, April 17, 2012 2:07 PM
> To: mapreduce-user@hadoop.apache.org
> Subject: Re: Reducer not firing
>
>
> Hello,
>
> Many thanks for the reply.
>
> The 'no_of_reduce_tasks' is set to 2. I have a print statement before
> the code I pasted below to check that.
>
> Also I can find two output files part-r-00000 and part-r-00001. But
> they contain the values that has been outputted by the Mapper logic.
>
> Please let me know what I can check further.
>
> Thanks a lot in advance!
>
> Warm regards
> Arko
>
> On Tue, Apr 17, 2012 at 12:48 AM, Devaraj k <devara...@huawei.com> wrote:
>> Hi Arko,
>>
>>    What is value of  'no_of_reduce_tasks'?
>>
>> If no of reduce tasks are 0, then the map task will directly write map
>> output  into the Job output path.
>>
>> Thanks
>> Devaraj
>>
>> ________________________________________
>> From: Arko Provo Mukherjee [arkoprovomukher...@gmail.com]
>> Sent: Tuesday, April 17, 2012 10:32 AM
>> To: mapreduce-user@hadoop.apache.org
>> Subject: Reducer not firing
>>
>> Dear All,
>>
>> I am porting code from the old API to the new API (Context objects)
>> and run on Hadoop 0.20.203.
>>
>> Job job_first = new Job();
>>
>> job_first.setJarByClass(My.class);
>> job_first.setNumReduceTasks(no_of_reduce_tasks);
>> job_first.setJobName("My_Job");
>>
>> FileInputFormat.addInputPath( job_first, new Path (Input_Path) );
>> FileOutputFormat.setOutputPath( job_first, new Path (Output_Path) );
>>
>> job_first.setMapperClass(Map_First.class);
>> job_first.setReducerClass(Reduce_First.class);
>>
>> job_first.setMapOutputKeyClass(IntWritable.class);
>> job_first.setMapOutputValueClass(Text.class);
>>
>> job_first.setOutputKeyClass(NullWritable.class);
>> job_first.setOutputValueClass(Text.class);
>>
>> job_first.waitForCompletion(true);
>>
>> The problem I am facing is that instead of emitting values to
>> reducers, the mappers are directly writing their output in the
>> OutputPath and the reducers and not processing anything.
>>
>> As read from the online materials that are available both my Map and
>> Reduce method uses the context.write method to emit the values.
>>
>> Please help. Thanks a lot in advance!!
>>
>> Warm regards
>> Arko
>
>

Reply via email to