3

デフォルトでは、EMR ジョブ中、インスタンスはマッパーよりも少ないレデューサーを持つように構成されます。しかし、レデューサーには追加のメモリが与えられていないため、同じ量を持つことができるはずです。(たとえば、特大の高 CPU インスタンスには 7 つのマッパーがありますが、レデューサーは 2 つしかありませんが、マッパーとレデューサーの両方が 512 MB の利用可能なメモリで構成されています)。

これがなぜなのか誰かが知っていますか?マッパーと同じ数のレデューサーを使用するように指定できる方法はありますか?

編集:量が間違っていました.512 MBです

4

1 に答える 1

3

マッパーは入力ストリーム (マッパーの STDIN) からデータを抽出し、出力するものははるかにコンパクトです。その送信ストリーム (マッパーの STDOUT) もキーでソートされます。したがって、レデューサーは、受信データに小さい並べ替えられたデータを持ちます。

これが、EMR だけでなく、Hadoop MapReduce クラスターのデフォルト構成が、ジョブトラッカーで使用可能なコアの数に比例して、リデューサーよりも多くのマッパーを持つことになっている理由のほとんどです。

jobconf パラメータを使用して、マッパーとリデューサーの数を制御できます。設定変数は mapred.map.tasks と mapred.reduce.tasks です。

于 2012-04-27T11:02:17.403 に答える