我想为我提交的应用程序使用spark的dynamic-allocation特性,但是应用程序不缩放。
我的集群由3节点组成,每个节点都有:
我使用hdp2.4并按照以下方式设置所有所需的动态分配属性(它们是在hdp中预先配置的,但我用文档验证它们):
spark.dynamicAllocation.enabled=truespark.dynamicAllocation.initialExecutors=5 -spark.dynamicAllocation.maxExecutors=10spark.dynamicAllocation.minExecutors=1spark.shuffle.service.enabled=trueyarn.nodemanager.aux-services=mapreduce_shuffle,spark_shuffleyarn.nodemanager.aux-services.spark_shuffle.class=org.apache.spark.network.yarn.YarnShuffleService我使用纱线资源管理器-UI来查找使用过的核心。
当我提交下面的PI示例时,只有3个包含每个1核心的容器被使用。在那里有足够的资源分配,但没有使用更多的资源。
./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示例时,可以分配更多的资源。在这个例子中,它静态地分配了8个容器,每个1核。(1名司机+7名遗嘱执行人)
./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我做错了什么,这不会自动分配最大限度的可用资源?
谢谢你的帮助:)
发布于 2016-07-22 02:29:39
我认为这个博客(http://jerryshao.me/architecture/2015/08/22/spark-dynamic-allocation-investigation/)可以帮助你。您的应用程序可以请求多达10个执行者,但它不需要那么多执行者。
发布于 2017-11-20 08:51:16
当他想要将其运行到动态分配模式时,不应该指定-num-executor参数。
https://stackoverflow.com/questions/38486300
复制相似问题