我正在使用以下配置在YARN上提交Spark应用程序
conf.set("spark.executor.cores", "3")
conf.set("spark.executor.memory", "14g")
conf.set("spark.executor.instances", "4")
conf.set("spark.driver.cores", "5")
conf.set("spark.driver.memory", "1g")
但是,在YARN Resource Manager UI上显示vCores used = 5
,我期望vCores以前是 17((4x3)+ 5 = 17),即执行者为12,驱动程序为5 。
但始终显示等于 executors + driver = 5 。
请帮助我理解这一点! 预先感谢
答案 0 :(得分:0)
在spark配置docs中,您将看到以下内容:
Spark属性主要可以分为两种:一种与部署相关,例如“ spark.driver.memory”,“ spark.executor.instances”,当通过SparkConf进行编程设置时,此类属性可能不会受到影响。运行时,或行为取决于选择的集群管理器和部署模式,因此建议通过配置文件或spark-submit命令行选项进行设置;另一个主要与Spark运行时控件有关,例如“ spark.task.maxFailures”,可以用任何一种方式设置这种属性。
与代码相反,您需要在spark-submit
命令行中设置的大多数设置。无论如何,这通常都是更好的做法,因此您可以使用不同的参数启动作业,而无需重新编译。
您想要类似的东西:
spark-submit --num-executors 4 --executor-cores 3 --executor-memory 14g --driver-memory 1g --driver-cores 5 --class <main_class> <your_jar>