我需要每个群集的节点从hdfs检索1GB文件。我使用FileSystem的copyToLocalFile方法。但是,不是整个文件(1GB),每个节点检索大约50MB的文件,然后代码继续。结果我的工作失败了。为什么会发生这种情况?有没有办法“等待”,直到整个文件被复制到本地fs?
编辑:我的mapper类检查文件是否存在于节点的本地fs中,如果不存在则检索它。这是在setup()函数中完成的。
答案 0 :(得分:0)
从上次修改开始:
编辑:我的mapper类检查文件是否存在于节点的本地fs中,如果不存在则检索它。这是在setup()函数中完成的。
您所描述的正是DistributedCache的设计目标 - 它将确保在您的任何map / reduce任务在该节点上运行之前将文件复制到每个任务跟踪器。