1. ホーム
  2. hadoop

[解決済み] yarn.scheduler.maximum-allocation-mb` と `yarn.nodemanager.resource.memory-mb` の違いについて教えてください。

2022-02-03 19:56:33

質問

とはどのような違いがあるのでしょうか? yarn.scheduler.maximum-allocation-mbyarn.nodemanager.resource.memory-mb ?

の両方が表示されますね。 yarn-site.xml と説明されているのを見かけます。 ここで .

yarn.scheduler.maximum-allocation-mb には次のような定義が与えられている。 RMでのすべてのコンテナ要求に対する最大割り当て量をMBで表したもの。これより大きいメモリ要求はInvalidResourceRequestExceptionをスローする。 これは、resourcemanager上でのメモリ要求のみがこの値で制限されるということでしょうか?

そして yarn.nodemanager.resource.memory-mb の定義が与えられています。 コンテナ用に割り当て可能な物理メモリの量(MB)。 これは、クラスタ全体の全コンテナの合計量ということでしょうか?

しかし、私はまだこれらの区別がつきません。 これらの説明では、同じものであるかのように思われます。

さらに紛らわしいのは、デフォルト値が8192mbと全く同じであることです。 どうすればこれらの違いを見分けることができるのでしょうか? ありがとうございました。

解決方法は?

各マシンが48GBのRAMを持つクラスタをセットアップするシナリオを考えてみましょう。このRAMの一部は、オペレーティングシステムと他のインストールされたアプリケーションのために予約されている必要があります。


yarn.nodemanager.resource.memory-mb:

コンテナ用に割り当て可能な物理メモリの量(MB単位)。YARNが利用できるメモリ量を意味する このノードでは したがって、このプロパティは が必要です。 そのマシンの総メモリ量より少ない .

<name>yarn.nodemanager.resource.memory-mb</name>
<value>40960</value> <!-- 40 GB -->


その 次のステップは、利用可能な総リソースをContainersに分割する方法についてYARNガイダンスを提供することです。 . これは、コンテナに割り当てる RAM の最小単位を指定することで実現します。

yarn-site.xml

<name>yarn.scheduler.minimum-allocation-mb</name> <!-- RAM-per-container ->
 <value>2048</value>

yarn.scheduler.maximum-allocation-mb:

を定義しています。 コンテナで使用可能なメモリ割り当て MB単位

ということは、RMがコンテナに割り当てることができるメモリは "yarn.scheduler.minimum-allocation-mb" を超えることはできません。 "yarn.scheduler.maximum-allocation-mb" また、ノードに割り当てられたメモリの合計を超えないようにする必要があります。

yarn-site.xml

<name>yarn.scheduler.maximum-allocation-mb</name> <!-Max RAM-per-container->
 <value>8192</value>

MapReduceアプリケーション向け。 YARNは各マップまたはリデュースタスクをコンテナで処理し、1台のマシンにいくつものコンテナが存在することがあります。 . 各ノードで最大 20 個のコンテナを使用できるようにしたいので、(総 RAM 40 GB) / (20 個のコンテナ) = 2 GB をコンテナごとに最低限必要とし、プロパティで制御します。 yarn.scheduler.minimum-allocation-mb

再び、プロパティで制御されるコンテナの最大メモリ使用量を制限したい "yarn.scheduler.maximum-allocation-mb"

たとえば、あるジョブがマップコンテナごとに 2049 MB のメモリを要求している場合 ( mapreduce.map.memory.mb=2048 set in mapred-site.xml ) に対して、RM は 4096 MB ( 2*yarn.scheduler.minimum-allocation-mb )コンテナです。

9999 MB のマップコンテナを要求する巨大な MR ジョブがある場合、エラーメッセージとともにジョブが強制終了されます。