【发布时间】:2018-07-23 14:27:42
【问题描述】:
我刚刚开始学习 hadoop。我知道分区器决定将哪个键值对发送到哪个减速器。如果只有一个减速器,我的问题是需要分区器?
我在 stackover fow 中看到了类似的问题,但我仍然无法理解答案。
【问题讨论】:
-
有一个默认的分区器,所以是的,它是必需的。 FWIW,普通的 MapReduce 编程并没有做那么多,除非进行收集或聚合,否则您通常会拥有多个 Reducer
我刚刚开始学习 hadoop。我知道分区器决定将哪个键值对发送到哪个减速器。如果只有一个减速器,我的问题是需要分区器?
我在 stackover fow 中看到了类似的问题,但我仍然无法理解答案。
【问题讨论】:
是的,当多个reducer就位时,Partitioner通过计算mapout键上的默认哈希函数或在自定义分区键中定义的默认哈希函数,将map输出的键值对重定向到特定的reducer。如果只有一个reducer,尽管Partitioner存在,但所有的key值都要转移到同一个reducer。默认的 Partitioner 始终存在于 mapreducer 流中。
【讨论】: