0

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 を送信するのと同じように?) それとも、全体が間違っていたのでしょうか?

4

2 に答える 2

0

明らかに、あなたはこれについて長い間忘れていましたが、とにかく返信します:いいえ、ストリームを強制することはできません。Hadoop プログラミング モデル全体は、ファイルを入力として受け取り、ファイルを出力することに関するものです (また、同じものをデータベースにアップロードするなどの副作用が生じる可能性もあります)。

于 2012-07-09T19:23:18.000 に答える