0

ダイナミックアロケーション機能を私のサブミットされたアプリケーションのために使用しますが、アプリケーションはスケーリングしません。スパークダイナミックアロケーションは動作しません

マイクラスタは3ノードから成り、それぞれがあります

  • 4コア
  • 8ギガバイトRAM
  • スパーク:1.6
  • 糸+ MapReduce2:2.7

Iをhdp 2.4を使用し、必要なすべての動的割り当てプロパティを次のように設定します(hdp bで事前設定されています)私はdocsでそれらを確認UT):

  • spark.dynamicAllocation.enabled=true
  • spark.dynamicAllocation.initialExecutors=5 - spark.dynamicAllocation.maxExecutors=10
  • spark.dynamicAllocation.minExecutors=1

  • spark.shuffle.service.enabled=true

  • yarn.nodemanager.aux-services=mapreduce_shuffle,spark_shuffle
  • yarn.nodemanager.aux-services.spark_shuffle.class=org.apache.spark.network.yarn.YarnShuffleService

糸ResourceManager-UIを使用して、使用されているコアを検索します。

私が次のPI-例を提出すると、は、1つのコアごとに3つの容器が使用されます。そこには十分なリソースが割り当てられますが、それ以上のリソースは使用されませんでした。

./bin/spark-submit --class org.apache.spark.examples.SparkPi \ 
--master yarn-cluster \ 
--deploy-mode cluster \ 
--driver-memory 512m \ 
--executor-memory 512m\ 
lib/spark-examples*.jar 10000 

定義済みのエグゼキュータの数でPIサンプルを送信するようにテストすると、さらに多くのリソースを割り当てることができます。この例では、1つのコアごとに8個のコンテナを静的に割り当てます。私が間違っていた何を(+ 7キュータ1つのドライバ)

./bin/spark-submit --class org.apache.spark.examples.SparkPi \ 
--master yarn-cluster \ 
--num-executors 7 \ 
--driver-memory 512m \ 
--executor-memory 512m \ 
lib/spark-examples*.jar 100000 

、その火花が自動的に利用可能なリソースの最大値を割り当てられませんか?あなたは助けるために

ありがとうございました:)

+0

スパークはすぐにメモリを与えません。必要な場合は、sparkだけがメモリを割り当てます。 –

答えて

0

動的割り当てモードで実行する場合は、 - num-executorパラメータを指定しないでください。

関連する問題