我目前正在学习使用 Hadoop 的“来龙去脉”。这是
当前设置:我有用于创建 .txt 文件的顺序代码,这些文件将用作映射器的输入数据。我目前一直在本地机器上运行这个顺序代码“preprocess.py”,然后将生成的文件移动到 hdfs,但是生成了许多文件,并且移动需要比生成更多的时间。
我想知道,将“preprocess.py”代码复制到 hdfs 后,是否有任何方法可以在那里运行它,从而允许在 hdfs 上创建生成的文件,而不需要移动。
使用
"hdfs dfs -python preprocess.py"
返回“未知命令”错误,因此这显然不起作用。感谢您的时间!
最佳答案
有可能的。只需确保将所有生成的文件推送到 python 代码中的单个 unix 位置。一旦他们在那里,您可以使用subprocess
运行模块以将生成的文件转移到 HDFS。在代码中,它必须等到文件传输完毕。此外,为了确保您不再复制相同的文件,请考虑以不同的方式命名文件(尝试这样做会导致 Hadoop 错误)并在 HDFS 传输成功后删除文件。
关于python - 在 hdfs 中运行顺序代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39706713/