我看到了带有以下参数的Spark Submit命令
spark-submit --class ${my_class} \
--master yarn \
--deploy-mode cluster \
--executor-cores 2 \ <--- executor cores
--driver-cores 2\ <--- driver cores
--num-executors 12 \ <--- number of executors
--files hdfs:///blah.xml \
--conf spark.executor.instances=15 \ <--- number of executors again?
--conf spark.executor.cores=4 \ <--- driver cores again?
--conf spark.driver.cores=4 \ <--- executor cores again?
似乎可以通过多种方式为执行程序和驱动程序节点设置核心号和实例号,只是想知道,在上述设置中,哪种方式具有优先权并覆盖另一种方式?
--
参数还是conf
参数?最终给Spark工作分配了多少个内核和实例?
最佳答案
根据优先顺序选择配置。
优先级明智,通过set()在应用程序中定义的config获得最高优先级。
第二优先级被赋予spark-submit参数,然后第二优先级被赋予默认配置参数。--executor-cores 2 \ <--- executor cores
--driver-cores 2\ <--- driver cores
--num-executors 12 \ <--- number of executors
上面的配置将优先于--conf参数,因为这些属性用于覆盖默认的conf优先级。
关于apache-spark - Spark执行程序配置优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60732694/