mrjob に関する問題があります。1 つの namenode と 1 つの jobtracker を使用して、3 つのデータノードで hadoopcluster を使用しています。気の利いたサンプルアプリケーションから始めて、次のようなものを書きました
first_script.py:
for i in range(1,2000000):
print "My Line "+str(i)
これは明らかに stdout に一連の行を書き込んでおり、セカンダリ スクリプトは mrjobs Mapper と Reducer です。私が試したUNIX(GNU)からの呼び出し:
python first_script| python second_script.py -r hadoop
これで作業は完了ですが、入力を hdfs に完全にアップロードしています。すべてがアップロードされたとき、彼は 2 番目のジョブを開始しています。だから私の質問は: ストリームを強制することは可能ですか? (EOF を送信するのと同じように?) それとも、全体が間違っていたのでしょうか?