spark应用如何加载spark的相关配置

官方文档说明

image

  • spark加载配置有三种方式:

  1. 在应用程序中通过sparkConf配置

val conf = new SparkConf().setMaster("local[2]").setAppName("CountingSheep")
val sc= new SparkContext(conf)
val spark = SparkSession.builder().config(conf).getOrCreate()
  1. 在spark-submit提交应用时通过--标签加载配置

--conf 后面跟key=value键值对,多个spark配置需要多个--conf指定的键值对

spark-submit --class mainClassName\
--master yarn \
--deploy-mode client \
--conf spark.eventLog.enabled=true
--conf spark.eventLog.dir=hdfs://10.0.0.1:8020/user/spark/applicationHistory
--driver-memory 4G \
--executor-memory 10G \
--num-executors 15 \
--name OraclePartitionReadTest \
--jars /home/wanghn/jars/ojdbc6-11.2.0.3.jar \
original-spark-projects-2.0-SNAPSHOT.jar
  1. 在spark-submit提交应用时通过spark-defaults.conf文件加载配置

如果不指定自定义的spark.conf文件,系统会默认加载$SPARK_HOME/conf/spark-defaults.conf
通过--properties-file 指定spark的配置文件。配置文件中的配置通过key value键值对实现,k和v中间用空格隔开。

spark-submit --class mainClassName\
--master yarn \
--deploy-mode client \
--properties-file /home/yourpath/spark-name.conf
......
  • spark配置加载的优先级

    1 > 2 > 3
    同一配置在新旧版本名称可能不同, 旧版本的配置可以生效,但是如果同时出现新旧版本两种配置,仅新版本配置生效。
  • spark配置的类别

  1. deploy相关
    比如"spark.driver.memory", "spark.executor.instances"等,此类配置在程序运行通过spark-conf加载配置时没有立即生效,或是说这些配置依赖选择的cluster manager和deploy-mode。因此此类配置一般放在spark-submit命令行中加载,或是写在配置文件中。
  2. runtime相关
    此类配置与runtime control相关,比如"spark.task.maxFailures"等,这类配置可以用三种方式任一种
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容