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の数)