Spark Application’s Configuration
提示:有關(guān)如何配置Spark和用戶程序的詳細(xì)信息困乒,請(qǐng)參閱官方文檔中的Spark Configuration所意。
必要參數(shù)
在Spark應(yīng)用程序運(yùn)行之前院究,必須設(shè)置Spark應(yīng)用程序的兩個(gè)必要參數(shù) - spark.master和spark.app.name。
Spark屬性
每個(gè)用戶程序都以創(chuàng)建SparkConf實(shí)例為開始,該實(shí)例包含Master URL(spark.master)信息鉴未,Spark應(yīng)用程序的名稱(之后顯示在Web UI中并成為spark.app.name)和其他Spark正常運(yùn)行所需的屬性 。 SparkConf實(shí)例可以用來創(chuàng)建SparkContext鸠姨。
Spark屬性是調(diào)整Spark應(yīng)用程序執(zhí)行環(huán)境的方法铜秆。
你可以在Spark shell中查詢Spark屬性的值,如下所示:
scala> sc.getConf.getOption("spark.local.dir")
res0: Option[String] = None
scala> sc.getConf.getOption("spark.app.name")
res1: Option[String] = Some(Spark shell)
scala> sc.getConf.get("spark.master")
res2: Option[String] = Some(local[*])
設(shè)置Spark屬性
Spark應(yīng)用程序會(huì)從以下幾個(gè)地方查看配置屬性(從最不重要到最重要):
-
conf/spark-defaults.conf
Spark屬性的默認(rèn)配置文件 -
--conf or -c
spark-submit命令行選項(xiàng)讶迁,以及其他使用spark-submit或spark-class的shell腳本连茧,例如spark-shell。 SparkConf
默認(rèn)的Spark屬性的配置文件是 $SPARK_HOME/conf/spark-defaults.conf,但你可以使用 spark-submit --properties-file 命令行選項(xiàng)覆蓋它啸驯。
你可以通過 getDefaultPropertiesFile來獲取 spark-defaults.conf屬性文件的絕對(duì)路徑客扎,該文件可以位于 SPARK_CONF_DIR環(huán)境變量或 $ SPARK_HOME/conf 目錄指定的目錄中。
默認(rèn)配置
你可以通過以下代碼創(chuàng)建Spark的默認(rèn)配置:
import org.apache.spark.SparkConf
val conf = new SparkConf
它只是加載spark.*系統(tǒng)屬性罚斗。
您可以使用 conf.toDebugString 或 conf.getAll 來打印出加載的 spark.*系統(tǒng)屬性徙鱼。
scala> conf.getAll
res0: Array[(String, String)] = Array((spark.app.name,Spark shell), (spark.jars,""), (spark.master,local[*]), (spark.submit.deployMode,client))
scala> conf.toDebugString
res1: String =
spark.app.name=Spark shell
spark.jars=
spark.master=local[*]
spark.submit.deployMode=client
getAppId 方法
conf.getAppId返回spark.app.id 的屬性值或者拋出NoSuchElementException異常(如果未設(shè)置過spark.app.id)。
基本設(shè)置
Spark屬性 | 默認(rèn)值 | 描述 |
---|---|---|
spark.master | Master URL | |
spark.app.id | TaskScheduler.applicationId() | 程序的唯一標(biāo)識(shí)针姿,在創(chuàng)建SparkContext時(shí)設(shè)置(TaskScheduler啟動(dòng)后立即生成)袱吆。 |
spark.app.name | 程序名 |