Spark三种属性配置方式 2015-04-09 17:00

说明

Spark的系统配置参数分三部分:

  1. Spark Properties属性配置
  2. Environment variables环境变量
  3. Logging日志配置

Spark Properties属性配置

属性配置有三种配置方式。

代码配置方式

直接在代码中指定相关配置:

1
2
3
4
5
val conf = new SparkConf()
             .setMaster("local[2]")
             .setAppName("CountingSheep")
             .set("spark.executor.memory", "1g")
val sc = new SparkContext(conf)

命令行参数方式

在spark-submit和spark-shell命令的参数中指定。

./bin/spark-submit --name "My app" --master local[4] --conf spark.shuffle.spill=false
  --conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" myApp.jar

spark-shell只支持–master这种形式的参数。spark-submit除了支持这种形式的参数外,还支持–conf标识。

配置文件spark-defaults.conf方式

spark-submit还会读取spark-submit中的配置项。

1
2
3
4
spark.master            spark://5.6.7.8:7077
spark.executor.memory   512m
spark.eventLog.enabled  true
spark.serializer        org.apache.spark.serializer.KryoSerializer

如果几种形式的参数有冲突,以第一种方式的优先级最高,第二种方式的优先级次之,第三种方式的优先级最低。

查看实际属性配置

通过http://<driver>:4040的“Environment” tab可以看到当前实际的环境变量信息。只是配置过的配置项才会出现在此tab中。

属性列表

参考:Available Properties

Environment variables环境变量

环境变量在conf/spark-env.sh脚本中配置。

参考:Environment Variables

Logging日志配置

日志配置使用的是log4j,配置文件log4j.properties。

参考文档

Spark Configuration

配置参数详解(中文)

Tags: #Spark    Post on Spark