21

hadoop で二次ソートがどのように機能するかを説明できる人はいますか?
なぜ使用する必要がありGroupingComparator、hadoop でどのように機能するのですか?

以下のリンクを調べていて、groupcomapator がどのように機能するか疑問に思いました。
グループ化コンパレータの仕組みを説明できる人はいますか?

http://www.bigdataspeak.com/2013/02/hadoop-how-to-do-secondary-sort-on_25.html

4

5 に答える 5

48

図を使って特定の概念を理解するのは簡単だと思いますが、これは確かにその 1 つです。

セカンダリ ソートが姓と名から作成された複合キーにあると仮定しましょう。

複合キー

複合キーが邪魔にならないので、次はセカンダリ ソート メカニズムを見てみましょう。

二次ソート手順

パーティショナーとグループ コンパレーターは自然キーのみを使用し、パーティショナーはそれを使用して、同じ自然キーを持つすべてのレコードを単一のリデューサーにチャネルします。このパーティショニングは Map フェーズで発生し、さまざまな Map タスクからのデータがレデューサーによって受信され、そこでグループ化されてから reduce メソッドに送信されます。このグループ化は、グループ コンパレータの出番です。カスタム グループ コンパレータを指定しなかった場合、Hadoop は複合キー全体を考慮したデフォルトの実装を使用し、誤った結果につながる可能性があります。

MR ステップの概要

ここに画像の説明を入力

于 2014-04-15T08:30:27.230 に答える
1

パーティショナーは、1 つのレデューサーがキーに属するすべてのレコードを受け取ることを保証するだけですが、レデューサーがパーティション内のキーによってグループ化されるという事実を変更しません。

セカンダリ ソートの場合、複合キーを形成し、デフォルトの動作を継続させると、グループ化ロジックはキーが異なると見なします。

したがって、グループ化を制御する必要があります。したがって、複合キーではなくキーの自然部分に基づいてグループ化するようにフレームワークに指示する必要があります。したがって、グループ化コンパレータを同じために使用する必要があります。

于 2017-11-23T13:16:31.593 に答える
0

上記の例には適切な説明があります。簡単に説明します。3 つの主要な手順を実行する必要があります。

  1. Mapout は (Key+Value, Value) である必要があります
  2. Key&Valueに加入したとき。それでも、元のキーと値でソートするメカニズムが必要です。そのため、カスタム コンパレータを追加します。
  3. 現在、データは元の Key でソートされていますが、このデータをレデューサーに送信すると、Key+Value をキーとして使用しているため、特定のキーのすべての値が 1 つのレデューサーに送信されるとは限りません。それを確認するために、グループ コンパレータを追加します。
于 2014-09-12T08:17:50.877 に答える