地图任务是否并行读取其输入数据?

时间:2013-11-13 20:14:18

标签: hadoop mapreduce

假设HDFS的复制因子是3,因此对于地图任务,有三个节点保存其输入数据。地图任务是否并行读取所有3个节点或随机选择其中一个节点?

我做了一些实验,我将其中一个数据节点设置为带宽非常低并得到一些非常慢的地图任务,所以我猜一个地图任务不能并行读取所有可用数据节点,我是对的?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

如果复制因子为3,则群集中有三个节点,用于保存特定地图任务的输入数据。

作业跟踪器会将地图任务分配给这三个节点中的一个,因此它只从该节点读取数据。

Hadoop有一项称为推测执行的功能。在推测执行中,如果作业跟踪器发现其中一个地图任务需要很长时间才能完成,它将在数据可用的另一个节点上启动相同的地图任务。发送到reducer的数据取自首先完成的任何map任务。在这种情况下,您将有2个地图任务读取相同的输入数据,但在不同的节点上。