48 GBのRAMを持つ各マシンでクラスタを設定する場合を考えてみましょう。このRAMの一部は、オペレーティングシステムやその他のインストール済みアプリケーション用に予約されている必要があります。
yarn.nodemanager.resource.memory-MB:コンテナに割り当てることができるMB物理メモリの
量は、。これは、YARNがこのノードで利用できるメモリの量を意味します。したがって、このプロパティー は、そのマシンの合計メモリーより小さくなる必要があります。
<name>yarn.nodemanager.resource.memory-mb</name>
<value>40960</value> <!-- 40 GB -->
次のステップは、コンテナに利用可能なリソースの合計を分割する方法に関するYARNガイダンスを提供することです。これは、コンテナに割り当てるRAMの最小単位を指定することで行います。 yarn-site.xml
<name>yarn.scheduler.minimum-allocation-mb</name> <!-- RAM-per-container ->
<value>2048</value>
yarn.scheduler.maximum割り当て-MBにおいて
:
それはRMを意味MB
で容器に使用可能な最大メモリ割り当てを定義"yarn.scheduler.minimum-allocation-mb"
の単位でコンテナにメモリを割り当てることができ、"yarn.scheduler.maximum-allocation-mb"
およびそれを超えることはできませんdは、ノードの割り当てられた総メモリより大きくはない。
各マップのMapReduceアプリケーション、糸処理についてyarn-site.xml
<name>yarn.scheduler.maximum-allocation-mb</name> <!-Max RAM-per-container->
<value>8192</value>
で又は容器及び容器の数が存在することができる単一のマシン上でタスクを減らします。 各ノードに最大20個のコンテナを許可する必要があります(合計40 GBのRAM)/(コンテナ20個)=プロパティによって制御されるコンテナ当たり最小2 GB yarn.scheduler.minimum-allocation-mb
再度制限します一つの仕事が地図コンテナあたり2049メガバイトのメモリ(mapreduce.map.memory.mb=2048 set in mapred-site.xml
)を求めている場合は財産例えば"yarn.scheduler.maximum-allocation-mb"
によって制御されるコンテナの最大メモリ使用率は、RMはそれを1 4096メガバイト(2*yarn.scheduler.minimum-allocation-mb
)コンテナを提供します。
9999 MBのマップコンテナを要求する巨大なMRジョブがある場合、そのジョブはエラーメッセージで強制終了されます。
恐ろしい答えです! – Candic3
'<! - コンテナあたりのRAM - > ' - 私は 'spark.executor.memory'はコンテナごとにどれくらいのメモリが設定されていると思うので、必ずしも"コンテナあたりのRAM " /実行者。 – Candic3
これらの設定はスパークと相互作用しますか?私はスパークがこれらの設定を上書きすると思います、正しいですか?特に容量スケジューラを使用している場合は.... – Candic3