如果数据不是本地的,任务跟踪器如何从另一个节点获取地图任务的数据?

时间:2012-06-01 23:10:49

标签: hadoop

如果数据不是本地的,任务跟踪器如何从另一个节点获取地图任务的数据?

它是直接与包含数据的机器的数据节点直接对话,还是与自己的数据节点对话,后者又与另一个进行对话?

谢谢, 苏雷什。

1 个答案:

答案 0 :(得分:0)

任务跟踪器本身不会获取数据 - 它会启动(或重用)JVM来运行Map任务。映射任务使用DFS文件系统客户端在名称节点中查询要处理的文件的块位置。然后,客户端连接到数据节点,其中复制其中一个块以实际获取文件内容(作为流)。

如果你想深入研究,源代码是一个很好理解的好地方 - 查看DFSClient和内部类DFSInputStream(特别是bestNode方法)