What is the difference between Reducer and Combiner in Hadoop MapReduce?
The Combiner is Mini-Reducer that perform local reduce task. The Combiner runs on the Map output and produces the output to reducer input. A combiner is usually used for network optimization. Reducer takes a set of an intermediate key-value pair produced by the mapper as the input. Then runs a reduce function on each of them to generate the output. An output of the reducer is the final output.
Unlike a reducer, the combiner has a limitation. i.e. the input or output key and value types must match the output types of the mapper.
Combiners can operate only on a subset of keys and values. i.e. combiners can execute on functions that are commutative.
Combiner functions take input from a single mapper. While reducers can take data from multiple mappers as a result of partitioning.