我在试着理解map reduce是如何工作的。请阅读我在下面写的内容,并告诉我这里是否有任何缺少的部分或不正确的东西。谢谢您。
首先将数据拆分为所谓的输入拆分(这是一种逻辑类型的组,我们将其大小定义为记录处理的需要)。然后,每个输入分割都有一个Map器,它接受每个输入分割并按键和值对其排序。然后,有一个洗牌过程,它从Map器中获取所有数据(键值),并将所有相同的键与其值合并(输出所有键及其值列表)。洗牌过程的目的是为每种类型的键提供一个1键的输入以及它的总和值。然后,reducer将所有键值合并到一个地方(可能是页面?),这是mapreduce过程的最终结果。我们只需确定定义map(总是给出键值的输出)和reduce(最终结果-得到输入键值,可以是count、sum、avg等)步进码。
2条答案
按热度按时间jv4diomz1#
类似的qa-mapreduce的简单解释?
另外,这篇文章用非常简单的方式解释了hadoop-hdfs和mapreducehttps://content.pivotal.io/blog/demystifying-apache-hadoop-in-5-pictures
jk9hmnmh2#
你的理解有点错误,特别是Map器的工作原理。我得到了一个非常好的图像来解释简单的术语
它类似于
wordcount
程序,在哪里每捆巧克力都是最好的
InputSplit
,由Map器处理。所以我们有3捆。每一块巧克力都是一个词。一个或多个单词(组成一个句子)是单个Map器的记录输入。所以,一年之内
inputsplit
,可能有多个records
以及每个record
输入到单个mapper
.mapper
计算每个word
(巧克力)把伯爵吐出来。请注意,每个Map器只处理一个line
(记录)。一旦完成,它就会选择下一个record
从inputsplit
. (图像中的第二阶段)一次
map
阶段结束,sorting
以及shuffling
发生在bucket
同样的巧克力也算数(图像中的第三阶段)一个减速机得到一个
bucket
带钥匙组件name of the chocolate
(或word
)还有一份计数表。所以,在整个输入文件中有尽可能多的减缩器和尽可能多的不同单词。reducer遍历count并对其求和,以生成最终的count并针对单词发出它。
下图显示了单个
inputsplit
的wordcount
程序工作: