hadoop - hadoop:FileSystem的copyToLocalFile方法无法复制整个文件

标签 hadoop hdfs

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

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

最佳答案

在您的上一次修改中:

EDIT: My mapper class checks if the file exists in node's local fs and if it is not it retrieves it.This is done in setup() function.



您所描述的恰好是DistributedCache设计的目的-它可以确保在任何Map / Reduce任务在该节点上运行之前,将文件复制到每个Task Tracker。

关于hadoop - hadoop:FileSystem的copyToLocalFile方法无法复制整个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14816403/

相关文章:

hadoop - Apache Pig - 处理中间别名?

hadoop - HDFS 和 Databricks DBFS 之间的主要区别是什么?

hadoop - 如何查找 HDFS 文件的大小

security - HDFS 组权限问题,集群与 Kerberos + AD 集成

ubuntu - 在 Ubuntu 12.04 上安装 Hadoop 的问题

java - 我在Windows中使用hadoop时发生非法反射访问操作

java - 将目录从本地系统复制到hdfs java代码

hadoop - 在Hadoop 3.1.0中,namenode正常运行,但datanode无效

hadoop - 特定的YARN节点未生成容器

shell - 我们如何使用linux脚本在Sqoop中自动从DB到HBase的增量导入