我有一个脚本伟驰弹了使用Hadoop的CLI将文件上传到HDFSPython的subprocess.call参数没有被发现
下面是摘录:
def hdfs_put(file_path, topic):
print(file_path)
print(topic)
call(["/usr/local/hadoop-2.5.1/bin/hadoop fs -put", file_path, "/" + topic]
, shell=True
, stderr=STDOUT)
这里是我得到(注意参数是不为空):
avro/hdfs_1_2014-11-05.avro
hdfs
-put: Not enough arguments: expected 1 but got 0
Usage: hadoop fs [generic options] -put [-f] [-p] <localsrc> ... <dst>
现在我得到这个错误:'''FileNotFoundError:[错误2]没有这样的文件或目录: '/usr/local/hadoop-2.5.1/bin/hadoop FS -put' ''' – Lee 2014-11-05 09:31:13
它确实存在,但:(VENV)的bash-4.1#/usr/local/hadoop-2.5 .1/bin/hadoop fs -put -put:没有足够的参数:预计1但得到0 用法:hadoop fs [通用选项] -put [-f] [-p] ... –
Lee
2014-11-05 09:31:54
@JohnDoe:我认为你忽视了像我一样分裂命令。请仔细阅读我的答案,并与您的代码进行比较。 – 2014-11-05 09:32:44