(1)、 combiner
有时一个 map 可能会产生大量的输出, combiner 的作用是在 map 端对输出先做一次合并,以减少网络传输到 reducer 的数量。
注意: mapper 的输出为 combiner 的输入, reducer 的输入为 combiner 的输出。
(2)、 partition
把 map 任务输出的中间结果按照 key 的范围划分成 R 份 (R 是预先定义的 reduce 任务的个数 ) ,划分时通常使用 hash 函数,如: hash(key) mod R
这样可以保证一段范围内的 key ,一定会由一个 reduce 任务来处理