Spark常用参数解释及建议值

spark的默认配置文件位于堡垒机上的这个位置: $SPARK_CONF_DIR/spark-defaults.conf,用户可以自行查看和理解。

需要注意的是,默认值优先级最低,用户如果提交任务时或者代码里明确指定配置,则以用户配置为先。 用户再理解参数含义的基础上,可根据具体任务情况调整参数。
以下常用参数配置均可以通过 --conf XXX=Y 方式使用,其他参数以及介绍请参考 https://spark.apache.org/docs/latest/configuration.html

参数名称 建议值 解释
spark.master yarn 使用那种资源调度器,一般使用yarn。本地调试可以用local
spark.submit.deploy-mode cluster driver程序运行位置,调试可以用client,线上任务建议cluster。
spark.driver.cores <10 driver最大使用cpu(线程)数,JDSpark控制最大为28
spark.driver.memory <10g driver申请内存大小,JDSpark控制最大为50G
spark.executor.memory <24g(10k/hope/tyrande集群 <48g) 单个executor申请堆内内存大小,JDSpark控制最大为50G
spark.python.worker.memory spark.executor.memory/2 python开发的程序设置此值,java/scala开发的或者纯spark-sql程序使用默认值即可。
spark.yarn.executor.memoryOverhead 4096 单个executor申请堆外内存大小
spark.executor.cores executor.memory的1/4到1/2 单个 executor最大并发task数,JDSpark控制最大为28
spark.executor.instances 数据大小(GB)x2/executor.memory executor数,JDSpark控制最大为500
spark.memory.fraction 0.6(用默认即可) executor mem中用于计算和存储的内存比例,越小OOM概率越低但执行速度越慢
spark.memory.storageFraction 0.5(用默认即可) 计算和存储共用的内存中,存储所占内存最大比例。spark会动态调整不建议修改。
spark.speculation false 推测执行机制默认为false(关闭),如果遇到作业偶尔卡住 可以尝试开启。
spark.speculation.multiplier=2 --conf spark.speculation.quantile=0.9
spark.shuffle.service.enabled true 默认为false,但如果shuffle数据量比较大,或者频繁出现shufle fetch failed exception,打开此配置能在一定程度缓解
spark.default.parallelism < spark.executor.cores x spark.executor.instances的2倍 控制默认RDD的partithion数,读取hdfs文件时partition数以blocksize和是否合并输入为准。
spark.sql.shuffle.partitions < 总数据量(GB) x 3 执行sql或sql类算子时shuffle分区数,默认是200,单数据量大时应提高此值。但次值过大,会导致产生很多空文件
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 2.1版本中此参数不能与spark.speculation同时设为true(只能二选一或者都关闭),否则有概率导致部分数据重复。
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.sql.tempudf.ignoreIfExists true(默认false) 是否加载所有hive udf(只支持spark-sql下使用,不支持spark-submit、pyspark)。(HiveTask里面已经打开,用户无需多余设置)

Spark默认使用jdk7,使用jdk8的话添加如下配置:
若只设置客户端jdk版本:
export JAVA_HOME=/software/servers/jdk1.8.0_121
若设置整个应用程序的jdk版本:
–conf spark.yarn.appMasterEnv.JAVA_HOME=/software/servers/jdk1.8.0_121
–conf spark.executorEnv.JAVA_HOME=/software/servers/jdk1.8.0_121
Spark使用各种python库请使用docker

DockerLinuxContainer的使用例子

./bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 4g \
--executor-memory 2g \
--executor-cores 1 \
--conf spark.yarn.appMasterEnv.yarn.nodemanager.container-executor.class=DockerLinuxContainer \
--conf spark.executorEnv.yarn.nodemanager.container-executor.class=DockerLinuxContainer \
--conf spark.yarn.appMasterEnv.yarn.nodemanager.docker-container-executor.image-name=bdp-docker.jd.com:5000/wise_algorithm:latest \
--conf spark.executorEnv.yarn.nodemanager.docker-container-executor.image-name=bdp-docker.jd.com:5000/wise_algorithm:latest \
$SPARK_HOME/examples/jars/spark-examples_2.11-2.1.0.jar \
10
只需要在之前提交spark的任务中加上
--conf spark.yarn.appMasterEnv.yarn.nodemanager.container-executor.class=DockerLinuxContainer \
--conf spark.executorEnv.yarn.nodemanager.container-executor.class=DockerLinuxContainer \
--conf spark.yarn.appMasterEnv.yarn.nodemanager.docker-container-executor.image-name=bdp-docker.jd.com:5000/wise_algorithm:latest \
--conf spark.executorEnv.yarn.nodemanager.docker-container-executor.image-name=bdp-docker.jd.com:5000/wise_algorithm:latest \
运行模式必须是yarn cluster(不支持 spark-shell /pyspark等交互式环境)
--master yarn \
--deploy-mode cluster \ 
其中bdp-docker.jd.com:5000/wise_algorithm:latest为镜像名称

构建自己的运行环境请参考: link

Spark常用参数解释及建议值Spark常用参数解释及建议值 milk珂 发布了1 篇原创文章 · 获赞 0 · 访问量 21 私信 关注
上一篇:京东首页项目(4)---中间模块实现


下一篇:前端需要注意的三个SEO