1

I am processing the the one file with the map reduce that file size is 1Gb and my default block size in HDFS is 64 MB so for this example how many input splits is there and how many mappers is there ?

4

2 に答える 2

0
Number of splits=Number of mappers.

したがって、ファイル サイズが 1GB (1024/64) の場合、16 のマッパーが実行されます。

入力分割がブロック サイズと異なります。ブロックは実際のデータを含む物理表現ですが、入力分割は分割長と分割位置のみを含む単なる論理表現です。

ただし、マッパーの数もさまざまな要因によって異なります。

  1. ファイルが圧縮されており、分割可能な形式ではない場合、1 つのマッパーがファイル全体を処理することになります。
  2. Inputformat クラスが false に設定されている場合issplittable()、ファイルは分割可能ではなく、1 つのマッパーが実行されます。
  3. レデューサーは、ドライバー コードで明示的に設定する必要があります。job.setNumReduceTasks()それをします。設定されていない場合、レデューサーの数はデフォルトで 1 になります。

入力分割の数は、入力ファイルのサイズに依存すると思います。

于 2015-10-07T12:06:13.800 に答える
-1

ブロックの数 = マッパーの数; サイズが 1 GB でブロック サイズが 64 MB のファイルが 1 つだけの場合、チャンク (ブロック) の数 => 1026 MB/64 MB = 16 です。したがって、マッパーの数 = 16 です。デフォルトでは、1 つの Reducer のみを取得します。さらに多くの Reducer を実行する場合は、job.setNumReduceTasks(); を設定できます。

于 2015-10-08T12:41:21.480 に答える