地图减少如何工作..我说得对吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了地图减少如何工作..我说得对吗?相关的知识,希望对你有一定的参考价值。

我试图理解map-reduce实际上是如何工作的。请阅读我在下面写的内容,并告诉我这里是否有任何遗漏的部分或不正确的东西。谢谢。

首先将数据拆分为所谓的输入拆分(这是一种逻辑类型的组,我们将其大小定义为记录处理的需要)。然后,每个输入拆分都有一个Mapper,它接受每个输入拆分并按键和值对其进行排序。然后,有一个混洗过程,它从映射器中获取所有数据(键值),并将所有相同的键与其值合并(输出所有键及其值列表)。进行混洗过程以便为每个类型的密钥及其总和值提供1个密钥的输入。然后,Reducer将所有键值合并到一个位置(页面可能是?),这是MapReduce过程的最终结果。我们只需要确保定义Map(它总是给出键值的输出)和Reduce(最终结果 - 得到输入键值,可以是count,sum,avg等等)步骤代码。

答案

你的理解有点特别错误,特别是mapper的工作原理。我got a very nice pictorial image用简单的术语来解释

enter image description here

它类似于wordcount程序,其中

  • 每捆巧克力都是InputSplit,由一个映射器处理。所以我们有3个捆绑。
  • 每个巧克力都是一个词。一个或多个单词(制作句子)是单个映射器的记录输入。因此,在一个inputsplit内,可能有多个records,每个record输入到单个mapper
  • mapper计算每个word(巧克力)的发生和吐计数。请注意,每个映射器只能处理一个line(记录)。一旦完成,它会从record中挑选下一个inputsplit。 (图像的第2阶段)
  • 一旦map阶段结束,sortingshuffling将制作一个相同巧克力计数的bucket。 (图像中的第3阶段)
  • 一个减速器得到一个bucket与密钥作为name of the chocolate(或word)和一个计数列表。因此,整个输入文件中有尽可能多的reducer和许多不同的单词。
  • reducer迭代计数并将它们相加以产生最终计数并将其发出。

下图显示了inputsplit程序的单个wordcount如何工作:

enter image description here

另一答案

类似的QA - Simple explanation of MapReduce?

此外,这篇文章以非常简单的方式解释Hadoop - HDFS和Mapreduce qazxsw poi

以上是关于地图减少如何工作..我说得对吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 PreparedStatement 进行批处理

sqlalchemy 创建表

Python函数调用与数据库查询(django ORM)开销

Java中的并发 - 将任务委派给工作线程,我做得对吗?

安全简单配对与 LE 传统配对

Queryset inside et ouside 一个函数