map如何减少工作量…我做对了吗?

huwehgph  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(393)

我在试着理解map reduce是如何工作的。请阅读我在下面写的内容,并告诉我这里是否有任何缺少的部分或不正确的东西。谢谢您。
首先将数据拆分为所谓的输入拆分(这是一种逻辑类型的组,我们将其大小定义为记录处理的需要)。然后,每个输入分割都有一个Map器,它接受每个输入分割并按键和值对其排序。然后,有一个洗牌过程,它从Map器中获取所有数据(键值),并将所有相同的键与其值合并(输出所有键及其值列表)。洗牌过程的目的是为每种类型的键提供一个1键的输入以及它的总和值。然后,reducer将所有键值合并到一个地方(可能是页面?),这是mapreduce过程的最终结果。我们只需确定定义map(总是给出键值的输出)和reduce(最终结果-得到输入键值,可以是count、sum、avg等)步进码。

jv4diomz

jv4diomz1#

类似的qa-mapreduce的简单解释?
另外,这篇文章用非常简单的方式解释了hadoop-hdfs和mapreducehttps://content.pivotal.io/blog/demystifying-apache-hadoop-in-5-pictures

jk9hmnmh

jk9hmnmh2#

你的理解有点错误,特别是Map器的工作原理。我得到了一个非常好的图像来解释简单的术语

它类似于 wordcount 程序,在哪里
每捆巧克力都是最好的 InputSplit ,由Map器处理。所以我们有3捆。
每一块巧克力都是一个词。一个或多个单词(组成一个句子)是单个Map器的记录输入。所以,一年之内 inputsplit ,可能有多个 records 以及每个 record 输入到单个 mapper . mapper 计算每个 word (巧克力)把伯爵吐出来。请注意,每个Map器只处理一个 line (记录)。一旦完成,它就会选择下一个 recordinputsplit . (图像中的第二阶段)
一次 map 阶段结束, sorting 以及 shuffling 发生在 bucket 同样的巧克力也算数(图像中的第三阶段)
一个减速机得到一个 bucket 带钥匙组件 name of the chocolate (或 word )还有一份计数表。所以,在整个输入文件中有尽可能多的减缩器和尽可能多的不同单词。
reducer遍历count并对其求和,以生成最终的count并针对单词发出它。
下图显示了单个 inputsplitwordcount 程序工作:

相关问题