我有多个hadoop命令要运行,这些命令将从python脚本中调用。目前,我尝试了以下方式。
{{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))
我希望这个建议可以帮到你!
最佳