MapReduce-单词计数示例的好处是什么

MapReduce-单词计数示例的好处是什么,mapreduce,Mapreduce,我试图了解MapReduce的好处是什么,我刚刚第一次读了一些关于它的介绍 他们都使用这个在一大组文档中计算单词的规范示例,但我看不到它的好处。以下是我目前的理解,如果我错了,请纠正我 我们指定输入文件(文档)的列表。MapReduce库获取此列表并将其在群集中的处理器之间进行划分。处理器上的每个文档都传递给map函数,在本例中,map函数返回一个对列表 在这里,我有点不确定到底发生了什么。 然后,库软件在所有不同处理器上搜索结果集,并将具有相同单词(键)的对分组在一起。这些组在不同的处理器上收

我试图了解MapReduce的好处是什么,我刚刚第一次读了一些关于它的介绍

他们都使用这个在一大组文档中计算单词的规范示例,但我看不到它的好处。以下是我目前的理解,如果我错了,请纠正我

我们指定输入文件(文档)的列表。MapReduce库获取此列表并将其在群集中的处理器之间进行划分。处理器上的每个文档都传递给map函数,在本例中,map函数返回一个对列表

在这里,我有点不确定到底发生了什么。 然后,库软件在所有不同处理器上搜索结果集,并将具有相同单词(键)的对分组在一起。这些组在不同的处理器上收集,并在该处理器的每个组上调用reduce

然后在主节点上收集组合结果

这是正确的解释吗

我不明白的是,由于有必要对所有结果进行排序以对键进行分组,为什么不同时对找到的键进行计数,为什么还需要reduce?当需要查找和组合常用键时,此过程如何节省时间?

这是一个关于MapReduce算法的精彩视频,如果您观看完整的5个视频系列,它将使您对MapReduce有更清晰的了解,并回答您的大多数查询

我不明白的是,由于有必要对所有结果进行排序以对键进行分组,为什么不同时对找到的键进行计数,为什么还需要reduce?当需要查找和组合公用密钥时,此过程如何节省时间

由于单词计数示例中特定单词(如“sample”)的键/值对可能由不同的映射任务发出,并将分布在不同的节点上,因此在发送到reduce任务之前,需要对这些键/值对进行合并/排序。特定密钥的Reduce任务在单个节点上运行,并且不分布


仅供参考,map任务的结果在与map任务相同的节点上使用combiner类(与reducer类相同)进行组合,以减少映射器和reducer之间的网络抖动。

我认为您的思考范围较小。想象一下像谷歌新闻这样的东西,以及聚合和分组文章所需要的东西。因为数据分散在许多节点上,所以需要使用reduce。而且单词计数是一个很有趣的例子。。。