如何在hadoop分布式文件系统(hdfs)上执行python文件(.py)
Hadoop提供了直接在集群上使用如何在hadoop分布式文件系统(hdfs)上执行python文件(.py),python,hadoop,hdfs,Python,Hadoop,Hdfs,Hadoop提供了直接在集群上使用 hadoop jar <jar> 有没有类似于我执行.jar文件的方法来执行.py文件 我不熟悉Python和Hadoop。如果我的方法看起来完全不对劲,毫无意义,我很高兴得到任何澄清 如果您只是希望在集群中分发python脚本,那么您需要使用Hadoop流 该命令的基本语法如下所示(从): 这基本上为python脚本创建了一个MapReduce作业hadoop jar专门用于运行MapReduce作业。看起来您想使用Python操作HDFS上的
hadoop jar <jar>
有没有类似于我执行.jar文件的方法来执行.py文件
我不熟悉Python和Hadoop。如果我的方法看起来完全不对劲,毫无意义,我很高兴得到任何澄清 如果您只是希望在集群中分发python脚本,那么您需要使用Hadoop流 该命令的基本语法如下所示(从):
这基本上为python脚本创建了一个MapReduce作业
hadoop jar
专门用于运行MapReduce作业。看起来您想使用Python操作HDFS上的文件?在这种情况下,你应该看看提供了一个很好的教程。谢谢,它让我走上了正确的轨道。我需要调整我的python脚本以作为MapReduce作业。没问题,Rob,只要记住Hadoop使用python进行流式处理是通过拉入stdin并输出stdout来工作的。
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()
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \
-input myInputDirs \
-output myOutputDir \
-mapper myPythonScript.py \
-file myPythonScript.py