サーバーからHadoopにファイルをコピーするために使用される python-file について、私はとても混乱しています。
コマンドは次hadoop fs -put /localhost/* /hadoop/*
のとおりです。コードは次のとおりです。
cmd = exc_path + ' ' + 'fs -put' + ' ' + src_path + item + ' ' + dst_path
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
code = process.wait()
logfile.info('type(code) is %s, code is %s\n', type(code), code)
ここ数日、問題なく動いています。しかし、一昨日それは戻ってきましたcode!=0
、そして昨日、それはうまくいきましたcode == 0
、そして今日は失敗して戻ってきました:type(code) is <type 'int'>, code is 255
ドキュメントには、wait()
は 0 または None を返す必要があると書かれていますが、なぜ 255 が返されるのでしょうか? また、hadoop の cmd 'put' は 0 (成功した場合) と -1 (失敗した場合) を返す必要があります。
役立つ情報をいくつか見つけました。 から