Hi, I have been unsuccessfully trying to set the map output value class different to the one reduce outputs (in 0.16.0). AFAIK the following should do the trick:
conf.setMapOutputValueClass(FooWritable.class) conf.setOutputValueClass(BarWritable.class) However I kept getting exceptions saying BarWritable is not FooWritable. Both classes implements WritableComparable. java.io.IOException: wrong value class: test.BarWritable is not class test.FooWritable at org.apache.hadoop.io.SequenceFile$Writer.append(SequenceFile.java :952) at org.apache.hadoop.mapred.MapTask$MapOutputBuffer$2.collect( MapTask.java:489) at edu.umd.cs.hadoopImage.HadoopImg$InpaintReduceClass.reduce( HadoopImg.java:122) at edu.umd.cs.hadoopImage.HadoopImg$InpaintReduceClass.reduce( HadoopImg.java:1) at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.combineAndSpill( MapTask.java:522) at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.sortAndSpillToDisk( MapTask.java:493) at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java :713) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:209) at org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java :2071) Suggestions? Thanks. - Chang -- --------------- Überstehen ist alles. Chang Hu Ph.D. student Computer Science Department University of Maryland