2

単一のレデューサーでのみ実行するように構成された MR ジョブがある場合、パーティショナーを呼び出す必要がないのは当然のことです。

ただし、これを試してみたところ、ジョブが単一のレデューサーで構成されていても、パーティショナーが呼び出されているように見えます。

これが必要な理由はありますか?

4

2 に答える 2

2

これは、特定のレデューサーへのキーと値のペアの割り当てが、パーティショナーの役割を果たすクラスの責任であるためです。レデューサーが 1 つしかない場合でも、その 1 つのレデューサーにキーと値のペアを割り当てるにはパーティショナーが必要です。

デフォルト値または if-there's-one-reducer ロジックが存在すると、パーティション割り当ての動作がパーティショナーの外側の場所に効果的に分散されますが、これは実際には適切な OO 設計ではありません。

于 2014-04-15T13:51:36.423 に答える