==map phase==
input: key = LongWritable value = Text,
output: key = Text, value = Longwritable

==combiner==
input: key = Text, value = iterator<LongWritable>
output: key = Text, value = Text


The combiner is a pure optimization and *cannot* change the output types of the map i.e. the combiner output _must_ be <Text, LongWritable>.

==reduce phase==
input: key = Text, value = iterator<Text>
output: key = Text, value = LongWritable


You have a mismatch here too - the map-output types *must* be <Text, Text> if your application needs the above. Your application is assuming that the Combiner will change the types - this is an invalid assumption.

The way around this is to get your map-output types to be <Text, Text>.

Arun

Reply via email to