Spark的默认配置文件位于堡垒机上的这个位置: $SPARK_CONF_DIR/spark-defaults.conf,用户可以自行查看和理解。
需要注意的是,默认值优先级最低,用户如果提交任务时或者代码里明确指定配置,则以用户配置为先。 用户再理解参数含义的基础上,可根据具体任务情况调整参数(修改提交参数--conf值,不是spark-defaults.conf文件)。
以下常用参数配置均可以通过 --conf XXX=Y 方式使用,其他参数以及介绍请参考 Configuration - Spark 3.2.1 Documentation
参数名称 | 建议值 | 解释 |
---|---|---|
spark.master | yarn | 使用哪种资源调度器,一般使用yarn。本地调试可以用local |
spark.submit.deployMode | cluster | driver程序运行位置,调试可以用client,线上任务建议cluster。 |
spark.driver.cores | 4 | driver最大使用cpu(线程)数 |
spark.driver.memory | 4-10g | driver申请内存大小 |
spark.executor.memory | 3. Spark任务调优技巧 | 单个executor申请堆内内存大小 |
spark.python.worker.memory | spark.executor.memory/2 | 一般使用默认值即可 |
spark.yarn.executor.memoryOverhead | 3072 | 单个executor申请堆外内存大小,一般使用默认值即可 |
spark.executor.cores | 3. Spark任务调优技巧 | 单个 executor最大并发task数 |
spark.executor.instances | 3. Spark任务调优技巧 | executor数 |
spark.speculation | 默认值false | 推测执行机制默认为false(关闭),如果遇到作业偶尔卡住可以尝试开启。 |
spark.default.parallelism | 3. Spark任务调优技巧 | 控制默认RDD的partithion数,读取hdfs文件时partition数以blocksize和是否合并输入为准。 |
spark.sql.shuffle.partitions | 执行sql或sql类算子时shuffle分区数,数据量大时应提高此值。 | |
spark.pyspark.python | python2/python3/python3.5 | 指定pyspark使用的python版本(如果使用docker镜像,请先确认镜像里是否有对应版本,平台基础镜像只有python2) |
spark.log.level | 默认值info | ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF,不区分大小写。 |
spark.sql.hive.mergeFiles | 默认值false | 开启会自动合spark-sql产生的并小文件 |
spark.hadoop.jd.bdp.streaming.monitor.enable | 默认值false | 是否开启streaming作业batch积压告警功能,默认为false,可通过 --conf spark.hadoop.jd.bdp.streaming.monitor.enable=true 开启 |
spark.hadoop.jd.bdp.batch.threshold | 默认值10 | streaming作业batch积压告警阈值,默认值为10,用户可根据需求调整,例如: --conf spark.hadoop.jd.bdp.batch.threshold=20 |
spark.hadoop.jd.bdp.user.define.erps | 默认使用平台配置的告警组 | 对于类似streaming作业batch积压等仅需用户关注的指标,用户可自定义告警组,例如: --conf spark.hadoop.jd.bdp.user.define.erps="baibing12|maruilei" (注意:可配置多人,相邻erp用竖线|分隔) |
spark.isLoadHivercFile spark.sql.tempudf.ignoreIfExists | 默认false | 是否加载所有hive udf(只支持spark-sql下使用,不支持spark-submit、pyspark)。(HiveTask里面已经打开,用户无需多余设置) |