2017-12-07 7 views
0

エラー:「診断:コンテナ[pid = 29328、containerID = container_e42_1512395822750_0026_02_000001]が物理メモリの限界を超えて実行されているスパーク・アプリケーションがあります。 GBの3.1 GB仮想メモリが使用されています。スパーク・ヤーンのメモリ構成

私は、物理メモリを増やすために変更することが示唆されたさまざまなパラメータを多数確認しました。 それぞれの意味とその効果について正確な説明をしてください。

mapreduce.map.memory.mb(現在0に設定ので、それはまた、効果に番号をDINT変更、我々は1.5ギガバイトとして、それを参照してくださいなぜ1ギガバイトであるデフォルトを取ると仮定)

mapreduce.reduce。 memory.mb(現在は0に設定されていますので、1GBのデフォルトを取ると仮定して1.5GBと見なします)、

mapreduce.map.java.opts/mapreduce.reduce。以前の数値から80%に設定されたjava.opts

yarn.scheduler.minimum-allocation-mb = 1GB(これを変更すると、最大の物理的な記憶しかし、1GBの値については、それでもなお1.5G)

yarn.app.mapreduce.am.resource.mb/spark.yarn.executor.memoryOverhead can not outの設定をすべて見つける。私は、すべてのパラメータのいくつかのorederをお願い申し上げますClouderaののCDH 5.12.1

を使用して

我々はYARN(糸クラスタで実行されている)を定義しています。

答えて

0
spark.driver.memory 
spark.executor.memory 

これらのコントロールは、メモリの基本量を制御して、ドライバとすべてのエグゼキュータに対して割り当てを試みます。これらはおそらく、メモリが不足している場合に増加させたいものです。

spark.yarn.executor.memoryOverhead 

この値は、Spark on yarnを実行しているときに要求するメモリの追加量です。 Spark Executorsをホストしている糸コンテナに必要な余分なRAMを考慮する予定です。

yarn.scheduler.minimum-allocation-mb 
yarn.scheduler.maximum-allocation-mb 

実行者にRAMのブロックを予約するようにSparkが指示すると、ベースメモリとオーバーヘッドメモリの値を求められます。しかし、糸は正確にそのサイズのものを戻すことはできません。これらのパラメータは、YARNが与える最小のコンテナサイズと最大のコンテナサイズを制御します。 1つのジョブに対してのみクラスタを使用している場合は、これらを非常に小さい値と非常に大きな値に設定し、上記のスパークメモリ設定を使用して実際のコンテナサイズを設定するのが最も簡単です。

mapreduce.map.memory.mb 
mapreduce.map.memory.mb 
mapreduce.map.java.opts/mapreduce.reduce.java.opts 

私はあなたのスパーク/ヤーンの仕事には関係しないと思います。

+0

糸が戻ってこない場合があります - なぜこれが起こりますか? – LubaT

+0

たとえば、最小割り当てが2GBに設定され、1.5GBを求める場合、糸は2GBのコンテナを提供します。 – RyanW

+0

このmapreduce.map.memory.mbはコンテナの割り当てられたメモリではありませんか?スパークデータフレームのキャッシュサイズがコンテナのメモリサイズより大きくなると、コンテナが強制終了されます。右? – Luniam

関連する問題