提问者:小点点

节点管理器是否在每个DataNode内执行Map和Reduce阶段?


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

但是看到这张图片后,我对实际的地图感到困惑

通过差异数据节点排序和填充/发送数据来执行Reduce Job不是需要时间的过程吗?请解释我。

另外让我知道这个图中的Map NodeReduce Node是什么。Image Src:http://gppd-wiki.inf.ufrgs.br/index.php/MapReduce


共1个答案

匿名用户

输入拆分是存储在hdfs上的文件的逻辑块,默认情况下,输入拆分表示文件的块,其中文件的块可能存储在集群中的许多数据节点上。

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

首先,Map任务由数据节点上的容器执行,其中容器由资源管理器分配,通过遵守机架感知策略(本地/机架本地/DC本地),尽可能靠近输入拆分的位置。

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

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

通过Shuffle和Sort,Reduce er通过超文本传输协议从每个映射器输出复制它们的相关分区,最终每个Reduce er Merge

下图可能会给出更多的说明。[Imagesrc:http://www.ibm.com/developerworks/cloud/library/cl-openstack-deployhadoop/]