14

実際にHiveを使用してHadoopジョブを実行していますが、これuniqは多くのテキストファイルの行に想定されています。reduce ステップでは、各キーの最新のタイムスタンプ付きレコードを選択します。

Hadoop は、map ステップによって出力された同じキーを持つすべてのレコードが、クラスター全体で多くのレデューサーが実行されている場合でも、単一のレデューサーに送られることを保証しますか?

同じキーを持つ一連のレコードの途中でシャッフルが発生した後、マッパーの出力が分割されるのではないかと心配しています。

4

3 に答える 3

14

キーのすべての値が同じレデューサーに送信されます。このYahoo! 詳細な議論のためのチュートリアル。

この動作はパーティショナーによって決定され、デフォルト以外のパーティショナーを使用する場合は正しくない可能性があります。

于 2010-04-13T22:53:11.600 に答える
5

実は違う!が呼び出されるPartitionerたびに、同じキーを異なるレデューサーに送信するを作成できます。getPartitionこれは、ほとんどのアプリケーションにとって一般的には良い考えではありません。

于 2010-04-14T12:13:20.670 に答える
3

はい、Hadoopは、同じであるすべてのキーが同じレデューサーに送られることを保証します。これは、ハッシュ関数を使用してキーをバケット化するパーティション関数を使用して実現されます。

パーティショニングプロセスの詳細については、次を参照してください。データのパーティショニング

具体的には、同じキーを処理するさまざまなマッパーが、特定の値のすべてのキーが同じパーティションに配置され、同じレデューサーによって処理されるようにする方法について説明します。

于 2010-04-13T22:53:56.777 に答える