hadoop - 有关 map 减少的概念性问题

标签 hadoop mapreduce distributed-computing

我一直在阅读有关Map Reduce的大量文章,但遇到以下问题,但似乎找不到答案:

  • 每个人都指向单词计数示例。但是,为什么我们需要一个针对单词计数非常大的语料库的map简化范例?我不知道让一台机器从非常大的流中读取并保持所有单词计数在内存中,比让许多连接的机器在它们之间分配计数任务并再次聚合更糟糕。最后,最后,仍然会有一个地方可以保留所有计数,对吗?
  • 映射器和化简器的机器物理上是否不同?还是可以在同一台机器上进行映射和还原?
  • 假设我的流是以下三个句子:

    a b c
    b c d
    b c
    

    So, the word-count mapper will generate key-value pairs as:


  • a 1
    b 1
    c 1
    b 1
    c 1
    d 1
    b 1
    c 1
    

    And now it will pass these key value pairs to the next stage, right? I have the following questions: - Is this next stage the reducer? - Can a mapper send the first b 1 and second b 1 tuples to different nodes? If yes, then do the counts get aggregated in the next phase? If no, then why not? Wouldn't that be counter intutive?


  • 最后,在map reduce作业的末尾,最终输出全部聚集在一台机器上,对吗?如果是,这是否会使整个过程在计算上变得过于昂贵?
  • 最佳答案

  • 字数统计最容易解释,这就是为什么您经常看到它。它已成为Hadoop框架的“Hello World”示例。
  • 是,Map和Reduce可以位于同一台计算机上,也可以位于另一台计算机上。精简仅在所有 map 完成后才开始。
  • 所有键都转到相同的reducer。
    (因此请回答您的问题
    映射器可以将第一个b 1和第二个b 1元组发送到不同的节点---是NO)

  • 同样,不能说整个处理过程很昂贵。
    由于Map-Reduce范式可以处理/解决/分析几乎不可能由单台机器处理的问题(这就是所谓的BIG数据的原因)。
    现在有了MapReduce,它就可以与商品(价格便宜一些)的硬件兼容;这就是为什么它被广泛接受。

    关于hadoop - 有关 map 减少的概念性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22417895/

    相关文章:

    hadoop - TTL 行为 - HBase

    hadoop - Apache Flume自定义拦截器-二进制和奇怪的HDFS文件

    hadoop - Hadoop-需要帮助以了解处理步骤

    apache-spark - 将数据从HDFS发送到特定计算机

    java - Hadoop MapReduce 小文件内存不足

    hadoop - 我在尝试使用Hadoop和YARN时遇到错误。需要协助

    Hadoop Distcp - 增加 distcp.dynamic.max.chunks.tolerable 配置和调整 distcp

    python - 如何在 MapReduce Python Streaming 中对多个字段进行排序?

    java - spark-3.0.1-bin-hadoop2.7无法启动,java:无此文件或目录

    java - 是否可以嵌套 Hazelcast Jet 管道,以便内部管道可以计算外部管道的结果?