我看到了带有以下参数的Spark提交命令
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工作分配了多少个内核和实例?
答案 0 :(得分:1)
根据偏好顺序获取配置。
优先级明智,通过set()在应用程序中定义的配置将获得最高优先级。 提交火花参数的优先级为第二,然后默认配置参数的优先级为
。 --executor-cores 2 \ <--- executor cores
--driver-cores 2\ <--- driver cores
--num-executors 12 \ <--- number of executors
上面的配置将优先于--conf参数,因为这些属性用于覆盖默认的conf优先级。