I'm getting a NPE from my combiner.  I can only assume it is because
I'm using a different schema for the reducer output than the combiner
output.

Basically I'm trying to create a time sorted file of key/value pairs
(aka Map<Utf8,Utf8>).
The nature of the job is such that I may have lots of duplicates I can
remove with a combiner.

So the output from the mapper is Pair<Long, Map<Utf8,Utf8> (aka
extends extends AvroMapper<Map<Utf8, Utf8>, Pair<Long, Map<Utf8,
Utf8>>>)
The combiner should get Long (aka time) as the key and the value is an
Iterator of Map<Utf8,Utf8>.
The working job (w/o the combiner) has a reducer that:  extends
AvroReducer<Long, Map<Utf8, Utf8>, Map<Utf8, Utf8>>

When I add the combiner, it seems that I need to extend
AvroReducer<Long, Map<Utf8, Utf8>, Pair<Long, Map<Utf8, Utf8>>>.  But
I get an NPE in the job I can't quite trace back, but it seems related
to the output schema from the reducer (Map<Utf8,Utf8>) not matching
the output schema of the combiner (Pair<Long, Map<Utf8, Utf8>>)

It seems like the implementation requires that the combiner output
schema match the reducer output schema.  Is this true?

Thanks,
Steve

Reply via email to