【问题标题】:Count words with the Map/Reduce algorithm使用 Map/Reduce 算法计算单词
【发布时间】:2012-05-06 18:47:17
【问题描述】:

如果有 20 个单词要数。每 5 个单词一组,这些组由不同的计算机节点处理。那么,如果“boy”这个词出现了两次,但是又分成了不同的组,那么Map/Redude是用什么样的算法来得到“boy”这个词的实际数量呢。

【问题讨论】:

    标签: algorithm map count word reduce


    【解决方案1】:

    在此示例中,使用 Map/Reduce 计算此值的最明显方法是每个映射器获取 5 个单词,然后将单词发送给 reducer。单词将在 reducer 之间拆分,因此 reducer 1 获得所有“boy”单词,reducer 2 获得所有“the”单词等,然后 reducer 可以简单地总结它收到的单词以获得出现次数那个词。

    Hadoop 文档中有一个示例:http://hadoop.apache.org/common/docs/current/mapred_tutorial.html#Example%3A+WordCount+v1.0

    【讨论】:

      【解决方案2】:

      这就是 MapReduce 中的 reduce。主节点将获取每个子组中的出现计数,并通过添加每个单词的出现来组合它们。因此,如果有四个组,并且 'boy' 在其中两个中出现一次,每个组中出现一次,它将通过将出现次数相加来组合它们,得到总共 1+1+0+0=2。

      【讨论】:

        猜你喜欢
        • 2016-08-01
        • 2018-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-07
        相关资源
        最近更新 更多