Hadoop 提供了使用
直接在集群上运行 Java 应用程序的可能性hadoop jar <jar>
现在我有一个 python 脚本而不是 java 应用程序。
下面是 .py 文件的构造,没有所有功能,只留下“从文件夹中删除文件”部分
import os.path
def transform():
inputfolder = "input"
for filename in os.listdir(inputfolder):
path = inputfolder + "\\" + filename
os.remove(path)
def main():
transform()
if __name__ == "__main__": main()
有没有一种方法可以像执行 .jar 文件一样执行 .py 文件?
我是 Python 和 Hadoop 新手。如果我的方法看起来完全不对并且没有意义,我很高兴得到任何形式的澄清!
最佳答案
如果您只是想在集群中分发 Python 脚本,那么您需要使用 Hadoop Streaming。
该命令的基本语法如下所示(来自 https://hadoop.apache.org/docs/r1.2.1/streaming.html ):
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \
-input myInputDirs \
-output myOutputDir \
-mapper myPythonScript.py \
-file myPythonScript.py
这基本上为你的Python脚本创建了一个map-reduce作业
关于python - 如何在hadoop分布式文件系统(hdfs)上执行python文件(.py),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46934935/