Spark Configuration

SparkCore Config 源码

// 定义了 Spark Core 的配置属性
org.apache.spark.internal.config

参考

Spark Configuration

指定 Spark Configuration

Spark Configuration Properties 可以在三个地方进行配置,优先级依次增加。

spark-defaults.conf

在配置文件中指定全局的参数,优先级最低

$ vim SPARK_HOME/conf/spark-defaults.conf
spark.driver.extraLibraryPath /usr/hdp/current/hadoop-client/lib/native:/usr/hdp/current/hadoop-client/lib/native/Linux-amd64-64
spark.eventLog.dir hdfs:///spark2-history/
spark.eventLog.enabled true

spark-submit

在执行 spark-submit 的时候为某个 spark app 指定参数

$ spark-submit \
    --class com.xxxx.xxx.xxxxxx \
    --master yarn \
    --deploy-mode client \
    --conf "spark.eventLog.enabled=false" \
    --conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" \
    app.jar

new SparkConf

在写代码的时候指定,优先级最高,但需要注意的是和 deploy 相关的参数在这里指定是无效的,具体原因在下面说。

val conf = new SparkConf()
conf.set("spark.speculation", "true")
conf.set("spark.speculation.interval", "100ms")
conf.set("spark.speculation.multiplier", "1.5")
val sparkSession = SparkSession.builder.config(conf).getOrCreate

2 Kind of Spark Properties

Spark Properties 主要分为两种

  1. 一种和 deploy 相关,比如spark.driver.memoryspark.executor.instances,像这种参数在 runtime(写在程序里面) 的时候已经无效了,因为要先分配总的资源(资源限定,已经分给你的资源具体怎么用,runtime 决定),再启动程序。
  2. 另一种主要是控制 runtime 行为,如spark.task.maxFailures,这种就可以在所有位置指定,只不过在优先级低的位置指定会被优先级高的覆盖掉(如果你在多个位置指定过相同 property 的话)。

View Spark Properties

可以在http://<driver>:4040Environment页查看,从这里可以确定之前指定的参数是否都生效了。

Common configurations

# Number of cores to use for the driver process, only in cluster mode.
spark.driver.cores	1	
	

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,一毛也是爱

打开支付宝扫一扫,即可进行扫码打赏哦