来自python脚本的Hadoop命令?

时间:2016-02-01 17:06:40

标签: python-2.7 hadoop subprocess

我有多个hadoop命令要运行,这些命令将从python脚本中调用。目前,我尝试了以下方式。

{{1}}

但是,代码不起作用。它既不会丢失错误也不会删除目录。

1 个答案:

答案 0 :(得分:1)

我建议你稍微改变一下你的方法,或者这就是我的做法。我使用python库import commands然后取决于你将如何使用它(https://docs.python.org/2/library/commands.html)。 这是一个小演示:

import commands as com
print com.getoutput('hadoop fs -ls /')

这为您提供了类似的输出(取决于您在HDFS目录中的内容)

/usr/local/Cellar/hadoop/2.7.3/libexec/etc/hadoop/hadoop-env.sh: line 25: /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home: Is a directory
Found 2 items
drwxr-xr-x   - someone supergroup          0 2017-03-29 13:48 /hdfs_dir_1
drwxr-xr-x   - someone supergroup          0 2017-03-24 13:42 /hdfs_dir_2

注意:lib commands不适用于python 3(据我所知),我正在使用python 2.7。 注意:请注意commands

的限制

如果您使用subprocess等效于commands的python 3,那么您可能会考虑找到一种正确的方法来处理您的“管道”。我觉得这个讨论在这个意义上很有用:(subprocess popen to run commands (HDFS/hadoop)

我希望这个建议可以帮到你!

最佳