Spark程序的配置

Spark Application’s Configuration

提示:有关如何配置Spark和用户程序的详细信息,请参阅官方文档中的Spark Configuration

必要参数

在Spark应用程序运行之前,必须设置Spark应用程序的两个必要参数 – spark.masterspark.app.name

Spark属性

每个用户程序都以创建SparkConf实例为开始,该实例包含Master URL(spark.master)信息,Spark应用程序的名称(之后显示在Web UI中并成为spark.app.name)和其他Spark正常运行所需的属性 。 SparkConf实例可以用来创建SparkContext。

Spark属性是调整Spark应用程序执行环境的方法。

你可以在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[*])

设置Spark属性

Spark应用程序会从以下几个地方查看配置属性(从最不重要到最重要):

  • conf/spark-defaults.conf Spark属性的默认配置文件
  • --conf or -c spark-submit命令行选项,以及其他使用spark-submit或spark-class的shell脚本,例如spark-shell。
  • SparkConf

默认的Spark属性的配置文件是 $SPARK_HOME/conf/spark-defaults.conf,但你可以使用 spark-submit –properties-file 命令行选项覆盖它。
你可以通过 getDefaultPropertiesFile来获取 spark-defaults.conf属性文件的绝对路径,该文件可以位于 SPARK_CONF_DIR环境变量或 $ SPARK_HOME/conf 目录指定的目录中。

默认配置

你可以通过以下代码创建Spark的默认配置:

import org.apache.spark.SparkConf
val conf = new SparkConf

它只是加载spark.*系统属性。
您可以使用 conf.toDebugStringconf.getAll 来打印出加载的 spark.*系统属性。

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异常(如果未设置过spark.app.id)。

基本设置

Spark属性默认值描述
spark.masterMaster URL
spark.app.idTaskScheduler.applicationId()程序的唯一标识,在创建SparkContext时设置(TaskScheduler启动后立即生成)。
spark.app.name程序名
    原文作者:LestatZ
    原文地址: https://www.jianshu.com/p/77b20a7ee8df
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞