【发布时间】:2015-05-28 17:44:37
【问题描述】:
我正在尝试弄清楚 MapReduce,到目前为止,我认为我的理解还不错。
但是,有一件事让我感到困惑。在我能找到的 MapReduce 的每个示例和解释中,map 步骤将所有值映射到 1。例如,在最常见的示例(计算字符串中单词的出现次数)中,Map 部分拆分每个单词,然后将其映射到值 1。
Reduce 部分然后组合/减少类似单词,将它们出现的次数相加,以便它们映射到 N 而不是 1(N 是单词出现的次数)。
我不明白的是:为什么还要首先将它们映射到 1?似乎它们总是映射到 1。为什么不将它们分开,然后在 Reduce 步骤中进行映射,然后同时总结所有内容?
我确信一定有一个我想不出的充分理由。谢谢!
(这个问题是关于 MapReduce 的一般概念,不一定与 Hadoop 或任何其他特定技术或实现有关)
【问题讨论】: