【发布时间】:2011-09-16 10:51:32
【问题描述】:
我想了解 MapReduce 有什么好处,我只是第一次阅读了一些关于它的介绍。
他们都使用这个在大量文档中计算单词的规范示例,但我没有看到好处。以下是我目前的理解,如有错误请指正。
我们指定输入文件(文档)的列表。 MapReduce 库获取此列表并将其分配给集群中的处理器。处理器上的每个文档都被传递给 map 函数,在这种情况下,该函数返回一个对列表。
这是我有点不确定到底发生了什么的地方。 然后库软件搜索所有不同处理器上的结果集,并将具有相同单词(键)的这些对组合在一起。这些组在不同的处理器上收集,并在该处理器的每个组上调用 reduce。
然后在主节点上收集组合结果。
这是正确的解释吗?
我不明白的是,因为有必要对所有结果进行排序以分组键,为什么不只计算它同时找到的键,为什么需要 reduce 呢?当查找和组合公共密钥似乎需要大量工作时,此过程如何节省时间?
【问题讨论】:
-
我认为您的考虑范围很小。想象一下像谷歌新闻这样的东西,以及将文章聚合和分组在一起需要什么。
-
reduce 是需要的,因为数据分散在许多节点上。无论如何,字数都是一个玩具例子......
标签: mapreduce