【发布时间】:2021-10-23 16:10:25
【问题描述】:
我正在使用 Hadoop in Practice 这本书学习 Hadoop,在阅读第 1 章时,我遇到了这个图表:
来自 Hadoop 文档:(http://hadoop.apache.org/docs/current2/api/org/apache/hadoop/mapred/Reducer.html)
1.随机播放
Reducer 是 Mapper 的分组输出。在该阶段,框架针对每个 Reducer,通过 HTTP 获取所有 Mapper 输出的相关分区。
2.排序
在此阶段,框架通过键对 Reducer 输入进行分组(因为不同的 Mapper 可能输出相同的键)。 shuffle 和 sort 阶段同时发生,即在获取输出时它们被合并。
虽然我知道shuffle 和sorting 同时发生,但我不清楚框架如何决定哪个reducer 接收哪个mapper 输出。从文档中,似乎每个reducer 都有办法知道要收集哪个mapoutput,但我不明白如何。
所以我的问题是,鉴于上面的映射器输出,每个减速器的最终结果总是相同的?如果是这样,达到这个结果的步骤是什么?
感谢您的澄清!
【问题讨论】:
标签: java hadoop mapreduce pseudocode