INFO-中台Spark参数设置

适用模块
离线开发、数据传输、数据质量等
具体说明
spark 参数设置使用示例
使用示例
一、参数示例:
1、数据传输-离线开发-附录
http://easydemo-dev.163yun.com/media/doc/easytransfer/easytransfer_appendix_parameter_config.html
2、spark-sql
https://spark.apache.org/docs/latest/configuration.html#static-sql-configuration

二、使用示例:
1、数据传输
常用开头ndi.spark.spark-argument和ndi.spark.spark-conf
常用参数:

参数 等同于submit的命令 含义
ndi.spark.spark-argument.driver-memory 2g - -driver-memory 设置driver的内存
ndi.spark.spark-argument.executor-cores 4 - -executor-cores 设置每个executor的核数
ndi.spark.spark-argument.executor-memory 4g - -executor-memory 设置每个executor的内存
ndi.spark.spark-argument.num-executors 6 - -num-executor 设置executor的数量
ndi.spark.spark-argument.files a.txt,b.txt - -files 指定文件
ndi.spark.spark-conf.spark.dynamicAllocation.enabled true 开启动态调整功能
ndi.spark.spark-conf.spark.dynamicAllocation.maxExecutors 20 动态executor个数,最大20个
1.1、离线开发-数据同步
INFO-中台Spark参数设置 - 图1
1.2、数据传输
INFO-中台Spark参数设置 - 图2

2、离线开发
节点参数使用conf.xxx,部分spark.sql.xxx参数支持sql,但可能存在不生效情况,建议使用图中节点参数设置
如下动态分区参数:

属性
conf.spark.hadoop.hive.exec.dynamic.partition true
conf.spark.hadoop.hive.exec.dynamic.partition.mode nonstrict
conf.spark.hadoop.hive.exec.max.dynamic.partitions 2000
conf.spark.hadoop.hive.exec.max.dynamic.partitions.pernode 100000
INFO-中台Spark参数设置 - 图3

- spark.app.name:自定义spark application名称,将在webui及日志中显示
- driver-cores:配置driver容器cpu个数,仅在cluster模式生效,client模式被 spark.yarn.am.cores参数覆盖
- driver-memory:配置driver容器内存大小,且只能在命令行或配置文件中指定;仅在cluster模式生效,client模式被spark.yarn.am.memory参数覆盖
- executor-cores:配置executor可用cpu个数,需cs调度模式支持
- executor-memory:配置executor内存大小
- spark.yarn.driver.memoryOverhead:默认为0.07 * driver-memory
- spark.yarn.am.memoryOverhead:默认为0.07 * spark.yarn.am.memory
- spark.yarn.executor.memoryOverhead:默认为 0.07 * executor-memory
- num-executors:指定任务启动的executor数量
- master:指定spark任务资源调度模式
- deploy-mode:指定spark任务调度模式
- spark容器的实际可用资源大小为memory+ overhead大小,且按照yarn.scheduler.minimum-allocation-mb的整数倍向上取整
- spark.dynamicAllocation.enabled:配置是否启用动态资源分配
- spark.dynamicAllocation.executorIdleTimeout:在启用动态资源分配情况下,executor闲置时长到达后将溢出executor
- spark.dynamicAllocation.initialExecutors:动态资源分配启用时,默认初始启动的executor数量
- spark.dynamicAllocation.maxExecutor:配置动态资源分配最大可分配executor个数
- spark.yarn.preserve.staging.files:配置任务结束后staging目录是否被删除,默认为false,当出现file not found类错误时,可配置该参数为true进行错误排查
- queue:在yarn集群模式时指定提交任务队列
- files:后接以逗号分隔的文件列表,可将文件分发至各个executor节点,便于spark读取外部资源文件;
    - cluster模式时,文件会自动添加至classpath
    - client模式时,需通过driver-class-path dirname来将目录添加至环境变量中
- spark.yarn.dist.files:要放到每个执行器(executor)的工作目录(working directory)中的以逗号分隔的文件列表,仅支持yarn模式使用,可与- -files互换

3、数据质量
参数设置同离线开发sql节点
INFO-中台Spark参数设置 - 图4

4、离线开发-spark 节点

将资源文件上传到任务流的资源信息后,直接在spark节点属性中增加 files ./test1.txt,test2.txt(多个文件用英文逗号分隔)

使用示例

spark任务节点


作者:林帅