並列マッパーの数を決定するには、EMRからこのマニュアルを確認する必要がありますEMRは、マッパー/の数を決定することになるすべてのインスタンスタイプのコンフィギュレーションの定義済みのマッピングセットを持っていたところ、タスクの設定と呼ばれます減速材。
例えば http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hadoop-task-config.html
:は、あなたが5つのm1.xlargeコアノードを考えてみましょう。 EMRのドキュメントから、そのインスタンス・タイプのデフォルトmapred-site.xmlの設定値によると、我々はあなたが単に1 m1.xlargeでサポートされているマッパーの最大数を取得するには、元の設定で、後を分割することができます
mapreduce.map.memory.mb = 768
yarn.nodemanager.resource.memory-mb = 12288
yarn.scheduler.maximum-allocation-mb = 12288 (same as above)
を持っていますノード= (12288/768) = 16
したがって、5ノードクラスタの場合、最大で16*5 = 80
(マップのみのジョブを考慮して)実行できるマッパーです。 max parallel Reducers(30)の場合も同じです。マッパーとレデューサーの組み合わせでも同様の計算ができます。
ですから、並行して、よりマッパーを実行したい場合は、次のいずれかを実行できre-size
クラスタまたはmapreduce.map.memory.mb
(およびそのヒープmapreduce.map.java.opts
)を減らすすべてのノード上で、何を上記mapred-を理解するために
にNMを再起動しますsite.xmlのプロパティを意味し、これらの計算を行う必要がありますなぜ、あなたはここでそれを参照することができます。 https://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
注:EMRはとYARN capacity scheduler
を使用してデフォルトの設定にとどまる場合は、上記の計算と文が真であります。たとえば、DominantResourceCalculator
を使用するようにキャパシティスケジューラを設定する場合、VCPUの+メモリはすべてのノードで(メモリだけでなく)、マッパーの並列数を決定することになります。
ありがとうございます。それは間違いなく雑草の中に隠されていた。 – Xathras
喜んでそれが役立ちます。 –