2012-05-17 6 views
23

私は0レデューサーとアイデンティティレデューサーの違いについて私の理解を確認しようとしています。hadoop:0レデューサーとIDレデューサーの違い?

  • 0減速ステップはスキップされます削減し、マッパー出力が出て
  • アイデンティティの減速が続いまだ行われます並べ替え/シャッフルを意味し、最終的なことを意味しますか?

答えて

34

ご理解に間違いがあります。私はそれを以下のように定義します: マップ結果のソートが不要な場合は、0を減らし、そのジョブはマップのみと呼ばれます。
マッピング結果をソートする必要があるが、集約は必要ない場合は、アイデンティティレデューサーを選択します。
写真を完成させるには、3番目のケースがあります。集計が必要で、この場合は減速器が必要です。

3

これは、お客様のビジネス要件によって異なります。単語カウントをしている場合は、合計結果を得るためにマップ出力を減らす必要があります。単語を大文字に変更したいだけであれば、減らす必要はありません。

4

アイデンティティ・リデューサを使用するもう1つの使用例は、すべての結果を<のリデューサ>出力ファイルに結合することです。これは、Amazon Web Servicesを使用してS3に直接書き込む場合、特にマッパーの出力が小さい(たとえば、レコードのgrep /検索)場合や、マッパー(たとえば1000)が多い場合に便利です。

+0

こんにちはDolan、Identity Reducerを使用して結果をより少数のファイルにまとめることについてちょっと説明できますか?同様の問題に直面していました。マップ専用のジョブで小さなファイルをたくさん作成していました。マップオンリージョブに比べて効率が悪いですか? –

+0

Yitong - Mapperの出力をXバケットにハッシュしてからXレデューサーに送信する必要があるため(つまり、Xが希望の出力ファイル数の場合)、ソートされているため、アイデンティティ・リキューサーをまったく使用しないと、 HDFS/S3/etcの出力ディレクトリに保存されます。大量のデータがある場合は、この重大なオーバーヘッドに注意する必要があります。これは場合によっては重大になる可能性があるためです。代わりに、HDFSに保存すると、 'hdfs cat'を使ってすべてのファイルの出力を1つの場所にストリームすることができます。 S3にも同様のストリーム読み込み機構があるかどうかはわかりません。 –

3

"いいえ減速" あなたが「NO減速機を使用しない場合(mapred.reduce.tasks = 0)とIdentityReducer (mapred.reduce.tasks = 1など)である "標準減速"であるとの主な違いMAPステージの後にはシャッフル処理が行われません(&)。したがって、この場合、処理を行わずにマッパーから「純粋な」出力が得られます。 puprosesの開発とデバッグに役立ちますが、それだけではありません。

関連する問題