Hello George, It worked. Thanks so much!! Bad typo while porting :(
Thanks again to everyone who helped!! Warm regards Arko On Tue, Apr 17, 2012 at 6:59 PM, George Datskos <george.dats...@jp.fujitsu.com> wrote: > Arko, > > Change Iterator to Iterable > > > George > > > > On 2012/04/18 8:16, Arko Provo Mukherjee wrote: >> >> 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 >>> >>> >> > > >