0

1 つを残して他のものを削除するか、それともすべてをマッパーとリデューサーに渡しますか?

4

3 に答える 3

2

Hadoop フレームワークは、重複する KV ペアを無視/削除しません。KV ペアの無視/変更は、ユーザー定義の map および reduce 関数で行う必要があります。

フレームワークは入力データを読み取り、入力データを KV ペアとして使用してユーザー定義のマップ関数を呼び出します。マップ関数は、いくつかの処理後に KV ペアを発行します。これらの中間 KV ペアはソート/マージされ、ユーザー定義のレデューサー関数がキーごとに何度も呼び出され、reduce 関数は再び KV ペアを発行します。

MapReduce と Hadoop をより明確にするために、 Hadoop: The Definitive Guide, 3rd Editionを入手することをお勧めします。

于 2012-10-31T05:49:42.477 に答える
2

同じ KeyValue ペア


マップフェーズ

Key-Value ペアは互いに独立しているため、Mapper は同一の Key-Value ペアを検索/認識しません。

元:

key  value
1       2
1       2
2       5
3       19


map(k,v)
{
 emit(k,v)
}

エミット: 1,2 1,2 2,5 3,19


削減フェーズ

同一の Key-Value ペアは、 Key で値をソートすることによって処理されるため、 Key に関連付けられた値は無視され、各値は一意として扱われます。

元:

key    value 
1      {2,2}
2      {5}
3      {19}

于 2012-10-31T05:50:52.930 に答える
0

MapReduce モデルは、@saurabh が言及したように、Map フェーズでそれらを個別に読み取り、Reduce フェーズでキーによってグループ化します。

于 2016-11-28T10:05:25.447 に答える