可以通過以下幾種方式設置:
1)bin/spark-submit 可以直接讀取conf/spark-defaults.conf文件
每一行為一個key和value
spark.master spark://5.6.7.8:7077
spark.executor.memory 4g
spark.eventLog.enabled true
spark.serializer org.apache.spark.serializer.KryoSerializer
Spark之參數介紹
2)在spark-submit or spark-shell運行時指定參數
2.1)--conf PROP=VALUE 固定的spark配置屬性
./bin/spark-submit --name "My app" --master local[4] --conf spark.eventLog.enabled=false
--conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" myApp.jar
2.2)--properties-file FILE 加載額外屬性的文件
如果要使用--properties-file的話,在--properties-file中定義的屬性就不必要在spark-sumbit中再定義了,比如在conf/spark-defaults.conf 定義了spark.master,就可以不使用--master了。
關於Spark屬性的優先權為:SparkConf方式 > 命令行參數方式 >文件配置方式,最終的參數為3者的merge
3)編碼方式:SparkConf中指定
3.1)硬編碼方式:
var conf =new SparkConf()
conf.set("spark.eventLog.enabled","true")
val sc = new SparkContext()
備注:可以創建空conf
3.2)spark-submit ... --application-arguments方式:
./bin/spark-submit \ --class <main-class> --master <master-url> \ --deploy-mode <deploy-mode> \ --conf <key>=<value> \ ... # other options <application-jar> \ [application-arguments]
備注:application-arguments可以指定具體的參數值,也可以指定具體的配置文件。
參考:
https://blog.csdn.net/hjw199089/article/details/72716607
https://www.jianshu.com/p/9b243c0a7410
http://blog.javachen.com/2015/06/07/spark-configuration.html