Hi Arpit, Can you send across a reproducible test case we can look at? I believe this to be a user code issue rather than a framework issue, but having a test case helps confirm/deny that.
On Mon, Jun 4, 2012 at 5:35 PM, Arpit Wanchoo <arpit.wanc...@guavus.com> wrote: > Hi > > I have been trying to setup a map reduce job with hadoop 0.20.203.1. > > Scenario : > My mapper is writing key value pairs where I have total 13 types of keys and > corresponding value classes. > For each input record I write all these i.e 13 key-val pair to context. > > My combiner and reducer are doing the same thing. > > Issue : > My job is running fine when I don't use a combiner. > But when I run with combiner , I am getting EOFException. > java.io.EOFException > at java.io.DataInputStream.readUnsignedShort(Unknown Source) > at java.io.DataInputStream.readUTF(Unknown Source) > at java.io.DataInputStream.readUTF(Unknown Source) > at > com.guavus.mapred.common.collection.ValueCollection.readFieldsLong(ValueCollection.java:40) > at > com.guavus.mapred.common.collection.ValueCollection.readFields(ValueCollection.java:21) > at > org.apache.hadoop.io.serializer.WritableSerialization$WritableDeserializer.deserialize(WritableSerialization.java:67) > at > org.apache.hadoop.io.serializer.WritableSerialization$WritableDeserializer.deserialize(WritableSerialization.java:40) > at > org.apache.hadoop.mapreduce.ReduceContext.nextKeyValue(ReduceContext.java:116) > at > org.apache.hadoop.mapreduce.ReduceContext.nextKey(ReduceContext.java:92) > at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:175) > at > org.apache.hadoop.mapred.Task$NewCombinerRunner.combine(Task.java:1420) > at > org.apache.hadoop.mapred.MapTask$MapOutputBuffer.sortAndSpill(MapTask.java:1435) > at > org.apache.hadoop.mapred.MapTask$MapOutputBuffer.access$1800(MapTask.java:852) > at > org.apache.hadoop.mapred.MapTask$MapOutputBuffer$SpillThread.run(MapTask.java:1343) > > > My Finding : > On checking and debugging what I got was that the combiner reads the key > successfully but while trying to read the values it gives EOFException > because it doesn't find anything in DataInput stream. Also this is occurring > when data is large and combiner runs more than once. > I have noticed that the combiner is failing to get the value for this key > when running for the 2nd time . (I read somewhere that combiner begins when > the some amount of data has been written by mapper even though mapper is > still writing data to context). > > I verified many times that my mapper is writing no null value. The issue > looks really strange because combiner is able to read the key but doesn't get > any value in data stream. > > There is some issue with combiner as it is running fine when I don't use a > combiner. I also tried to set the combiner class to the same class which is > my reducer class but still the issue occured. > > Please suggest what could be the root cause for this or what can I do to > track the root cause. > > > > Regards, > Arpit Wanchoo > > -- Harsh J