【问题标题】:Does execution of Map and Reduce phase happen inside each DataNode by Node Manager?节点管理器是否在每个 DataNode 内部执行 Map 和 Reduce 阶段?
【发布时间】:2015-04-21 10:18:41
【问题描述】:

我了解资源管理器将 MapReduce 程序发送到每个节点管理器,以便在每个节点中执行 MapReduce。

但是看到这张图片后,我对实际Map & Reduce jobs 的执行位置以及数据节点之间的洗牌情况感到困惑?

跨不同数据节点对数据进行排序和混洗/发送数据以执行Reduce Job 不是花费时间吗?请解释一下。

还让我知道此图中的Map NodeReduce Node 是什么。 图片来源:http://gppd-wiki.inf.ufrgs.br/index.php/MapReduce

【问题讨论】:

  • 看看这个link
  • @oftata :该链接解释了 map reduce。但我问 map reduce 发生在哪里?
  • 我同意,但 Yahoo 教程的答案中有一个链接可以回答您的问题。
  • @oftata:是的。谢谢。我现在明白了。

标签: hadoop mapreduce hdfs hadoop-yarn


【解决方案1】:

输入拆分是存储在 hdfs 上的文件的逻辑块,默认情况下,输入拆分表示文件的一个块,其中文件的块可能存储在集群。

容器是由资源管理器在任何数据节点上分配的任务执行模板,用于执行 Map/Reduce 任务。

首先,Map 任务由容器在资源管理器分配容器的数据节点上执行,并遵守 Rack Awareness Policy (本地/机架本地/DC 本地)。

Reduce 任务将由任何数据节点上的任何随机容器执行,reducers 通过 Shuffle/Sort 过程从每个映射器复制其相关数据。

映射器以这样的方式准备结果,结果在内部分区,在每个分区内,记录按键排序,分区器确定哪个减速器应该获取分区数据。

通过Shuffle and Sort,Reducer 通过http 从每个mapper 输出中复制其相关分区,最终每个reducer 对复制的分区进行Merge&Sort 并在调用reduce() 方法之前准备最终的单个Sorted 文件。

下图可能会提供更多说明。 [图片rc:http://www.ibm.com/developerworks/cloud/library/cl-openstack-deployhadoop/]

【讨论】:

  • 谢谢。但是你已经给出了 Hadoop V1.0 架构。 V2.0 没有作业和任务跟踪器
  • 是的,你是对的......我希望它可以帮助你理解 mapper 和 reducer 之间的 shuffle/sort 流程......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
相关资源
最近更新 更多