2011-09-29 3 views
5

私はHadoop in Actionを読み、JavaMultipleOutputFormatMultipleOutputsクラスを使用していることを見つけ、我々は複数のファイルにデータを減らすことができますが、どのように私はわからないことですPython streamingを使って同じことを達成してください。例えばPythonのストリーミング:?複数の出力を低減するための方法(Javaのとその可能性が)

:誰もが知っている場合

   /out1/part-0000 
mapper -> reducer 
        \ out2/part-0000 

は、聞いて、行って同じようなことは、私は

答えて

2

Dumbo FeathersDumboと一緒に使用するためのJavaクラスのセット(Pythonライブラリを教えてくださいことhadoop用の効率的なPython M/Rプログラムを書くのが簡単です)、output classesでこれを行います。

基本的に、あなたのpython dumbo M/Rジョブでは、2つの要素のタプルであるキーを出力します。最初の要素は出力するディレクトリの名前で、2番目の要素は実際のキーです。選択した出力クラスはタプルを調べて、使用する出力ディレクトリを探し、MultipleOutputFormatを使用して別のサブディレクトリに書き出します。

ダンボでは、これは出力形式としてtypedbytesを使用しているために簡単ですが、他の出力形式を使用しても実行できるはずです。

+0

どうすれば使用できますか? jarをダウンロードして、私が今までに書いたマップ/リダクションジョブに影響を与えずに "-libjar feathers.jar"を付けてください。これを使用して参照できるサンプルテストコードは参考になります – daydreamer

関連する問題