12

私はこれを正しい方法で尋ねていることを願っています。私はElastic MapReduceの使い方を学んでおり、「ストリーミング」ジョブフローで使用できる「集約」リデューサーへの参照を数多く見てきました。

Amazon の「Introduction to Amazon Elastic MapReduce」PDF には、「Amazon Elastic MapReduce には、aggregrate と呼ばれるデフォルトのレデューサーがあります」と記載されています。

私が知りたいのは、他に利用可能なデフォルトのレデューサーはありますか?

独自のレデューサーを作成できることは理解していますが、既存のものを作成して「ホイールを再発明」することはしたくありません。私のホイールは元のホイールほど良くないと確信しているためです。

4

2 に答える 2

8

彼らが参照するレデューサーは、ここに文書化されています:

http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html

これは、ストリーミング ユーティリティに組み込まれているリデューサーです。特別な方法でフォーマットされたキーを出力するマッパーを作成することにより、一般的な計算を行う簡単な方法を提供します。

たとえば、マッパーが次のように出力する場合:

LongValueSum:id1\t12
LongValueSum:id1\t13
LongValueSum:id2\t1
UniqValueCount:id3\tval1
UniqValueCount:id3\tval2

レデューサーは、各 LongValueSum の合計を計算し、UniqValueCount の個別の値をカウントします。したがって、リデューサーの出力は次のようになります。

id1\t25
id2\t12
id3\t2

このパッケージのレデューサーとコンバイナーは、実行中のストリーミング コンバイナーとレデューサーに比べて非常に高速であるため、集約パッケージを使用すると便利で高速です。

于 2010-11-22T21:22:37.860 に答える
4

私も似たような状況です。Google の結果などから、現時点での答えは「いいえ、Hadoop には他にデフォルトのレデューサーはありません」であると推測できます。 "なので、自分で書く必要はありません。

http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.htmlには、便利なアグリゲーターの使用法がいくつか示されていますが、その方法に関するドキュメントが見つかりません。ドキュメントと Erik Forsberg の回答で説明されている非常に基本的なキー/値の合計以外の機能にアクセスします。おそらく、この機能は、私が使用したくない Java API でのみ公開されています。

ちなみに、Erik Forsberg の回答は、この特定の質問に対する適切な回答ではありません。それが有用な答えになる可能性のある別の質問を作成できますが、それはOPが求めているものではありません.

于 2011-08-02T09:28:28.000 に答える