0

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

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

谢谢,苏雷什。

4

1 回答 1

0

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

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

于 2012-06-02T00:56:43.413 回答