web-dev-qa-db-ja.com

hadoop:0レデューサーとIDレデューサーの違いは?

0レデューサーとIDレデューサーの違いについての理解を確認しようとしています。

  • 0レデューサーは、リデュースステップがスキップされ、マッパー出力が最終出力になることを意味します
  • アイデンティティリデューサーは、シャッフル/ソートが引き続き行われることを意味しますか?
25
kee

あなたの理解は正しいです。私はそれを次のように定義します:マップ結果のソートが必要ない場合-0を減らして設定すると、ジョブはマップのみと呼ばれます。
マッピング結果を並べ替える必要があるが、集計は必要ない場合は、IDリデューサーを選択します。
そして、全体像を完成させるために、3番目のケースがあります。集約が必要であり、この場合、レデューサーが必要です。

39
David Gruzman

Identity Reducerを使用するもう1つの使用例は、すべての結果を<#ofreducers>出力ファイルに結合することです。これは、Amazon Web Servicesを使用してS3に直接書き込む場合、特にマッパーの出力が小さく(grep /レコードの検索など)、マッパーが多い場合(1000など)に便利です。

5
Dolan Antenucci

「NoReducer」(mapred.reduce.tasks = 0)とIdentityReducerである「Standardreducer」の主な違い(mapred.reduce.tasks = 1 etc) 「レデューサーなし」を使用する場合、MAPステージの後にパーティション分割とシャッフルのプロセスはありません。したがって、この場合、それ以上の処理を行わなくても、マッパーから「純粋な」出力が得られます。子犬の開発とデバッグに役立ちますが、それだけではありません。

3
morsik

それはあなたのビジネス要件に依存します。ワードカウントを実行している場合は、マップ出力を減らして合計結果を取得する必要があります。単語を大文字に変更したいだけの場合は、reduceは必要ありません。

3
nice2mu