hadoop获取“没有此类文件或目录”

时间:2019-06-04 11:32:58

标签: python python-2.7 hadoop

我正在python 2.7中使用多进程,并且需要使用命令HDFShadoop fs -get获取文件。

但是执行时

os.system('hadoop fs -get hdfs_file local_file')

在python代码中,多进程将发生冲突,某些进程将显示错误:

'get: No such file or directory'

,某些过程将会打印

'get: File local_file._COPYING_ does not exist'

如果我在后面的python代码中阅读了此内容,则会读取一个空文件。

是否有解决此问题的解决方案?或者,如果无法删除多进程体系结构,我该怎么做以获得HDFS文件?

2 个答案:

答案 0 :(得分:0)

您可能想在 local_file 上附加一些前缀,例如str(int(time.time()*1000000)) + local_file

_COPYING_ 是下载过程中的暂存文件。如果您在多进程作业中使用相同的 local_file 名称下载,则某些进程提前完成,因此 local_file._COPYING_ 被删除。因此,其他运行速度稍慢的进程会发现 local_file._COPYING_ 不存在。

答案 1 :(得分:-1)

在命令提示符下运行以下代码:

hadoop fs -ls /hdfs_file local_file