2016-10-14 15 views
0

マップとリデューサーが別々の理由は?なぜマッパーフェーズですべてが行えないのか?Reducerには何が必要ですか?

これらのタスクを分けることのメリットは何ですか?マッパーフェーズまたはレデューサーフェーズですべてを行わないという欠点は何ですか?

+1

還元剤が無意味であることがわかっているマッパーで何ができるのかを説明してください。 Reducerが必要でない場合があります。 –

答えて

0

コードを2つの独立したセグメントに分け、それらの間に指定されたデータフローを定義することで、並列性の基盤が示唆されます。 Hadoopの主な考え方は、プログラマがMapとReduceの2つのメソッドしか考えずに、並列化のすべての側面をフレームワークに参照することです。あなたは2つのメソッドを定義し、その後で並行処理を気にせずに、フレームワークが作業を完了します。

0

データが大きすぎて計算のために単一のマシンに移動できないため、分散システムを使用して作業を行っています。このシナリオでは、各コンピュータがローカルにデータスライスを処理します。その後、各コンピュータからすべてのデータを収集し、新しい「全体」ファイルを再構築する必要があります。

通常、単一のMapReduceジョブでは作業が完了しません。作業を完了させるには、いくつかのMapReduceジョブを実行する必要があります。

マップフェーズはすべてローカルでデータを処理しようとしていますが、削減フェーズはすべてのコンピュータのすべての中間結果を取得し、それらを一緒に新しい「ファイル全体」に結合しようとしています。

いつかマップで十分ですが、時にはそうではありません。データからいくつかのフィールドを抽出する必要がある場合、Mapで十分です。ファイルをソートする場合は、Mapでは不十分です。

パラダイムは ローカルで(MAP)処理し、すべての中間結果を新しい「ファイル全体」(REDUCE)にマージ/結合します。

関連する問題