0

我需要集群的每个节点从 hdfs 检索一个 1GB 的文件。我使用 FileSystem 的 copyToLocalFile 方法。但不是整个文件(1GB),每个节点检索大约 50MB 的文件,然后代码继续。结果我的工作失败了。为什么会这样?有没有办法“等待”直到整个文件被复制到本地 fs?

编辑:我的映射器类检查文件是否存在于节点的本地 fs 中,如果不存在,则检索它。这是在 setup() 函数中完成的。

4

1 回答 1

0

从您上次编辑:

编辑:我的映射器类检查文件是否存在于节点的本地 fs 中,如果不存在,则检索它。这是在 setup() 函数中完成的。

您所描述的正是 DistributedCache 的设计用途——它将确保在您的任何 map / reduce 任务在该节点上运行之前将文件复制到每个任务跟踪器。

于 2013-02-12T01:01:38.187 回答