1

mapreduceジョブの場合、入力データのパーティション化(マッププロセスの数-M)とreduceプロセスの数(R)を指定する必要があります。MapReduceの論文では、多くの場合設定の例が示されています。クラスターは2 000人のワーカーで、M = 200 000、R=5000です。ワーカーはmap-workerまたはreduce-workerとしてタグ付けされています。クラスター内のこれらのワーカーはどのように選択されているのでしょうか。

これは、マップワーカーの固定カウントとリデュースワーカーの固定カウントが選択されるように行われますか?(次に、reduce-workersノードに格納されたデータをmap-reduceワーカーに送信する必要があります)または、クラスター内の各ノードでマップフェーズが実行され、任意の数のノードがreduce-workersとして選択されますか?それとも別の方法で行われますか?

回答ありがとうございます。

4

1 に答える 1

1

Map-Worker(Mapper)の数は、入力ファイルの入力分割の数によって異なります。

したがって、例:200入力分割(論理的です)=200マッパー

マッパーノードはどのように選択されますか?
マッパーはローカルデータノードです。それが不可能な場合、データは空きノードに転送され、マッパーはそのノードで呼び出されます。

レデューサーの数は、ユーザーが設定できます(Job.setNumberOfReducer(Number))。そうでない場合は、マッパーの中間出力の分割数に応じて設定されます。



その他の質問の回答

Q1>so in one node can run for example 10 mappers in parallel at one time, or these mappers are processed sequentially?

回答:順次((アクティブ/実行中の)マッパーの最大数= DataNodeの数)

Q2>how are chosen the nodes where are reducers invoked?

回答:

  • 中間キー-値はHDFSではなくローカルファイルシステムに保存され、レデューサーノードにコピー(HDFS)されます。
  • 単一のマッパーがデータを複数のレデューサーにフィードします。したがって、データの局所性は問題外です。特定のレデューサーのデータは、すべてではないにしても、多くのノードから取得されます。

したがって、Reducerは、ノードの帯域幅で選択されます(または少なくとも選択する必要があります)。上記のすべての点に留意してください。

 Q3>if we need reducers count bigger then overall nodes count (for example 90 reducers in 50 nodes cluster), are the reducers on one node processed in parallel or sequentially?

回答:順次((アクティブ/実行中の)Reducerの最大数= DataNodeの数)

于 2012-10-16T08:56:51.113 に答える