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.master Master URL
spark.app.id TaskScheduler.applicationId() 程序的唯一标识,在创建SparkContext时设置(TaskScheduler启动后立即生成)。
spark.app.name 程序名
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容