Hadoop 映射任务是否并行读取其输入数据?

Hadoop 映射任务是否并行读取其输入数据?,hadoop,mapreduce,Hadoop,Mapreduce,假设HDFS的复制因子为3,那么对于map任务,有三个节点保存其输入数据。映射任务是并行读取所有3个节点,还是随机选取其中一个节点 我做了一些实验,其中一个数据节点的带宽非常低,并且得到一些非常慢的map任务,所以我猜map任务不会并行读取所有可用的数据节点,对吗 谢谢你的帮助 映射器任务将在其中一个任务跟踪器节点上执行,并从其中一个数据节点(本地或远程)读取块。如果复制系数为3,则群集中有三个节点保存特定映射任务的输入数据 作业跟踪器将仅将映射任务分配给这三个节点中的一个,因此它仅从该节点读取

假设HDFS的复制因子为3,那么对于map任务,有三个节点保存其输入数据。映射任务是并行读取所有3个节点,还是随机选取其中一个节点

我做了一些实验,其中一个数据节点的带宽非常低,并且得到一些非常慢的map任务,所以我猜map任务不会并行读取所有可用的数据节点,对吗


谢谢你的帮助

映射器任务将在其中一个任务跟踪器节点上执行,并从其中一个数据节点(本地或远程)读取块。

如果复制系数为3,则群集中有三个节点保存特定映射任务的输入数据

作业跟踪器将仅将映射任务分配给这三个节点中的一个,因此它仅从该节点读取数据


Hadoop有一个称为推测执行的特性。在推测执行中,如果作业跟踪器发现其中一个映射任务的完成时间过长,它将在数据可用的另一个节点上启动相同的映射任务。发送到reducer的数据取自最先完成的映射任务。在这种情况下,您将有两个映射任务读取相同的输入数据,但在不同的节点上。

请注意,JobTracker可以将任务分配给不承载正在处理的块的本地副本的节点-您将在计数器数据本地中看到这一点(比1个或多个作业的非数据本地所指示的映射任务数量少)和机架本地(其中数据块不是映射任务的本地,但在网络拓扑中位于同一机架上)