2011-08-16 16 views
3

Hadoop mapreduceプログラミングを使用してソートされたo/pを取得する方法Hadoop mapreduceプログラミング

最終的なキーと値のペアをソート順に取得する方法はありますか。 (キーまたは値のいずれか)。

この点に関するあらゆる指針は非常に高く評価されています。第2版​​は、コードサンプルと第8章でグローバルソートについて説明します。

は R

答えて

3

"Definitive GuideのHadoopの" ありがとうございました。

6

デフォルトでは、MapReduceはキーによって入力レコードをソートします。

ただし、最新のHadoopリリースをダウンロードして、それらのサンプルをチェックアウトするのに役立つかもしれません。異なるソートの例もあります。

ソート順の詳細が必要な場合は、これを変更する方法です。

キーのソート順は以下のように発見されRawComparator、によって制御される。

  1. プロパティmapred.output.key.comparator.classが設定されている場合、そのクラス のインスタンスであります中古。 (JobConfにsetOutputKeyComparatorClass()メソッドは、このプロパティを設定するための便利 方法である。)

  2. そうでない場合、キーはWritableComparableのサブクラスでなければならず、キークラスの登録 コンパレータが使用されます。登録済みコンパレータがない場合

  3. 、次いでRawComparatorだWritableCompar できるのcompareTo()メソッドをオブジェクトとデリゲートに比較さ バイトストリームを非直列化が使用されます。 これらのルールは、独自のカスタムWritableクラスに対してRawCompara の最適化バージョンを登録することが重要である理由を補強し、独自のコンパレータを設定して のソート順をオーバーライドするのは簡単です。

+1

組み込みのWritableComparableクラスは正しく比較されるため、LongWritableの場合、降順でソートされます。たとえば、テキスト文字列で並べ替えた後、タイムスタンプで値を並べ替えるなど独自のソート順が必要な場合は、カスタムキーとカスタムソートコンパレータとカスタムグループ化コンパレータが必要です。 – Drizzt321