【发布时间】:2017-11-05 04:21:16
【问题描述】:
洗牌阶段实际上做了什么?
可能性 - A
由于 shuffle 是将 mapper o/p 带到 reducer o/p 的过程,它只是根据 partitioner 中编写的代码将特定键从 mapper 带到特定的 reducer
例如。 mapper 1 的 o/p 是 {a,1} {b,1}
mapper 2的o/p是{a,1} {b,1}
在我的分区器中,我已经写了所有以'a'开头的键都将进入reducer 1,所有以'b'开头的键都将进入reducer 2,因此o/p将是:
减速器 1:{a,1}{a,1}
减速器 2:{b,1}{b,1}
可能性 - B
或者与上述过程一起,它是否也对键进行分组:
所以,o/p 是:
减速器 1:{a,[1,1]}
减速器 2:{b,[1,1]}
在我看来,我认为它应该是 A,因为键的分组必须在排序之后进行,因为排序只是为了让 reducer 可以轻松指出一个键结束而另一个键开始的时间。如果是,键分组实际发生在什么时候,请详细说明。
【问题讨论】:
标签: hadoop mapreduce shuffle mapper reducers