私が実行しているいくつかの Spark LDA トピック モデリング (主に一見ランダムな間隔での関連付け解除エラー) でさまざまな問題が発生しています。これは、問題のある自動クラスター構成に関連しているようです。私の最新の試みでは、マスター ノードとワーカー ノードの両方に n1-standard-8 マシン (8 コア、30 GB RAM) を使用します (6 ワーカー、合計 48 コア)。
しかし、私が見ると、/etc/spark/conf/spark-defaults.conf
これがわかります:
spark.master yarn-client
spark.eventLog.enabled true
spark.eventLog.dir hdfs://cluster-3-m/user/spark/eventlog
# Dynamic allocation on YARN
spark.dynamicAllocation.enabled true
spark.dynamicAllocation.minExecutors 1
spark.dynamicAllocation.initialExecutors 100000
spark.dynamicAllocation.maxExecutors 100000
spark.shuffle.service.enabled true
spark.scheduler.minRegisteredResourcesRatio 0.0
spark.yarn.historyServer.address cluster-3-m:18080
spark.history.fs.logDirectory hdfs://cluster-3-m/user/spark/eventlog
spark.executor.cores 4
spark.executor.memory 9310m
spark.yarn.executor.memoryOverhead 930
# Overkill
spark.yarn.am.memory 9310m
spark.yarn.am.memoryOverhead 930
spark.driver.memory 7556m
spark.driver.maxResultSize 3778m
spark.akka.frameSize 512
# Add ALPN for Bigtable
spark.driver.extraJavaOptions -Xbootclasspath/p:/usr/local/share/google/alpn/alpn-boot-8.1.3.v20150130.jar
spark.executor.extraJavaOptions -Xbootclasspath/p:/usr/local/share/google/alpn/alpn-boot-8.1.3.v20150130.jar
しかし、これらの値はあまり意味がありません。なぜ 4/8 executor コアのみを使用するのですか? 9.3 / 30GB RAM しかありませんか? 私の印象では、この構成はすべて自動的に処理されるはずでしたが、手動で調整しようとしてもうまくいきません。
たとえば、次のコマンドでシェルを起動しようとしました。
spark-shell --conf spark.executor.cores=8 --conf spark.executor.memory=24g
しかし、これは失敗しました
java.lang.IllegalArgumentException: Required executor memory (24576+930 MB) is above the max threshold (22528 MB) of this cluster! Please increase the value of 'yarn.scheduler.maximum-allocation-mb'.
で関連する値を変更しようとしましたが/etc/hadoop/conf/yarn-site.xml
、効果がありませんでした。別のクラスター セットアップを試しても (たとえば、60 GB 以上の RAM を持つエグゼキューターを使用)、同じ問題が発生します。何らかの理由で、最大しきい値が 22528MB のままです。
ここで間違っていることがありますか、それとも Google の自動構成の問題ですか?