Hi all ,
I am using ArrayWritable in my MR job .
Map outputs <Text ,ArrayWritable>
Reduce takes <Text,Iterable<ArrayWritable>>
The moment Iam trying to use the ArrayWritable in reduce using the iterator
..I get the following error :
10/01/02 18:23:41 WARN mapred.LocalJobRunner: job_local_0001
java.lang.RuntimeException: java.lang.NoSuchMethodException:
org.apache.hadoop.io.ArrayWritable.<init>()
at
org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:81)
at
org.apache.hadoop.io.serializer.WritableSerialization$WritableDeserializer.deserialize(WritableSerialization.java:62)
at
org.apache.hadoop.io.serializer.WritableSerialization$WritableDeserializer.deserialize(WritableSerialization.java:40)
at
org.apache.hadoop.mapred.Task$ValuesIterator.readNextValue(Task.java:940)
at org.apache.hadoop.mapred.Task$ValuesIterator.next(Task.java:880)
at
org.apache.hadoop.mapred.ReduceTask$ReduceValuesIterator.moveToNext(ReduceTask.java:237)
at
org.apache.hadoop.mapred.ReduceTask$ReduceValuesIterator.next(ReduceTask.java:233)
at HashJoin.MR_hash$redu.reduce(MR_hash.java:132)
at mtr.MyTableReduce.reduce(MyTableReduce.java:1)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:436)
at
org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:170)
Caused by: java.lang.NoSuchMethodException:
org.apache.hadoop.io.ArrayWritable.<init>()
at java.lang.Class.getConstructor0(Class.java:2723)
at java.lang.Class.getDeclaredConstructor(Class.java:2002)
at
org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:75)
... 10 more
java.io.IOException: Job failed!
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1232)
at HashJoin.MR_hash.run(MR_hash.java:294)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at HashJoin.MR_hash.join(MR_hash.java:320)
at HashJoin.MR_hash.main(MR_hash.java:338)
Can Anyone tell me what the error is ??