0

Map/Reduce と Hadoop フレームワークは初めてです。単一のマシンで Hadoop プログラムを実行しています (試してみるため)。n 個の入力ファイルがあり、それらのファイルの単語の要約が必要です。マップ関数がキーと値のペアを返すことは知っていますが、マップはどのように呼び出されますか? 各ファイルに 1 回、またはすべてのファイルの各行に 1 回? 構成できますか?

各キーに対して「reduce」が呼び出されると仮定するのは正しいですか?

4

2 に答える 2

1

Hadoop MR フレームワークでは、ジョブ トラッカーは、ジョブで指定されたInputFormatによって決定される各InputSplitのマップ タスクを作成します。map タスクに割り当てられた各Inputsplitは、 RecordReaderによってさらに処理され、map 関数の入力キー/値のペアが生成されます。map 関数は、 RecordReaderによって生成されたキーと値のペアごとに呼び出されます。

デフォルトのInputFormat 、つまりTextInputFormatの場合、入力分割は単一のマップ タスクによって処理される単一の HDFS ブロックになり、RecordReaderはブロック内で一度に 1 行ずつ処理し、キーがファイル内の行の先頭のバイト オフセットであるキーと値のペアを生成します。 value は map 関数に渡される行の内容です。

レデューサーの数はユーザーによるジョブ構成に依存し、同じキーを持つすべてのキーと値のペアがグループ化され、キーでソートされた単一のレデューサーに送信されますが、同時に単一のレデューサーは複数のキーも処理できます。

InputFormatとそのカスタマイズの詳細については、次の YDN ドキュメントを参照してください。

http://developer.yahoo.com/hadoop/tutorial/module5.html#inputformat

于 2013-10-14T22:52:03.287 に答える