我知道映射器为每个 reducer 生成 1 个分区。reducer 如何知道要复制哪个分区?假设有 2 个节点运行 mapper 用于字数统计程序,并且配置了 2 个 reducer。如果每个 map 节点产生 2 个分区,并且两个节点中的分区都可能包含相同的单词作为 key,reducer 将如何正常工作?
例如:
如果节点 1 产生分区 1 和分区 2,并且分区 1 包含一个名为“WHO”的键。
如果节点 2 产生分区 3 和分区 4,并且分区 3 包含一个名为“WHO”的键。
如果分区 1 和分区 4 进入减速器 1(并保留到减速器 2),减速器 1 如何计算正确的字数?
如果这是不可能的,并且分区 1 和 3 将转到 reducer 1,那么 Hadoop 是如何做到的?它是否确保来自不同节点的给定键值对总是去同一个reducer?如果是这样,它是如何做到的?
谢谢,苏雷什。