0

map/reduceは初めてです。1つのマップタスクの入力が異なるサーブにある可能性はありますか?map / reduceを使用して「単語数」をシミュレートし、データを1行ずつ(各行を1つに)分割するとします。各マップタスクが1つのデータを参照し、その部分の各単語の出現回数をカウントするというのは本当ですか?

4

2 に答える 2

1

データは InputSplit クラスを使用して分割されます。独自の入力分割クラスを定義できます。入力分割の数はマッパーの数と同じです。したがって、理論的には、入力行と同じ数のマッパーがあり、inputsplit をそのように記述した場合、各行を map タスクへの入力として供給することができます。一般に、map タスクの入力は同じマシン上にあります。Map Reduce フレームワークは、この方法でのみマップ タスクをスケジュールします。map reduce の基本を読むことをお勧めします。優れたビデオ チュートリアルは、cloudera の Web サイトで入手できます。

于 2013-05-08T11:35:50.557 に答える
1

入力ファイルは hdfs ブロック サイズに基づいて分割され、この分割ごとに正確に 1 つのマップ タスクが生成されます。

たとえば、デフォルトでは、hdfs ブロック サイズは 64 MB です。入力ファイルのサイズが 50MB だとしましょう。このファイルを hdfs にロードすると、25 MB ごとに 2 つの分割に分割されます。したがって、2 つのマップ タスクが生成され、各入力分割で動作します。1 つの入力分割に 100 行あると仮定すると、マッパー クラス (タスク) は、行ごとに 1 回ずつ、map メソッドを 100 回呼び出します。

于 2013-05-08T11:16:15.973 に答える