Spark参数配置不合理的情况

1.1 内存设置 💾

常见的内存设置有两类:堆内和堆外 💡

我们作业中大量的设置 driver 和 executor 的堆外内存为 4g,造成资源浪费 📉。

通常 executor 堆外内存在 executor.cores=1 的时候,1g 足够了,正常来说最大值不超过 2g;driver 1g-2g 足够了 ✅。

注意:如果有 c++ 库这种计算,executor 堆外内存可以保持原有配置。 📚

各版本推荐配置的 key 以及配置值 各版本不推荐配置的 key 及配置值 过去无效配置,建议删除 🚫
driver 堆内 💽 --conf spark.driver.memory=6G 无 无
driver 堆外 💾 --conf spark.driver.memoryOverhead=2G --conf spark.yarn.driver.memoryOverhead=4g --conf spark.yarn.driver.direct*
executor 堆内 💽 --conf spark.executor.memory=3G 无 无
executor 堆外 💾 --conf spark.executor.memoryOverhead=1G --conf spark.yarn.executor.memoryOverhead=4g --conf spark.yarn.executor.direct*
1.2 动态资源调度相关参数 📊

不开启动态资源管理或者参数设置不合理,会导致明显的资源浪费 💸:

涉及到动态资源调度的参数主要有以下几个 📝:

参数名 🛠️ 默认值 ⚙️ 作用 🧐 错误使用案例 🚫 使用建议 🌟
spark.dynamicAllocation.enabled ✅ false 开启资源动态能力,在 executor 空闲时可以释放,需要资源是发起请求 不开启 开启资源动态功能,尤其是运行时间比较长或者有数据倾斜的情况 🌟
spark.dynamicAllocation.executorIdleTimeout ⏲️ 60s executor 空闲多久开始释放资源 30000 或者 1200s 过大的数值 🚫 60s-120s 🌟
spark.dynamicAllocation.minExecutors 📉 0 最小持有的 executor 数,到达该值,空闲也不会释放 200 🚫 推荐设置为 1-5 🌟
spark.dynamicAllocation.maxExecutors 📈 infinity 作业申请 executor 资源的最大值 1000 以上 🚫 通常最大值建议 256-500 即可,小作业可以更小的设置 🌟

1.3 序列化参数 📝

Spark 中序列化主要有两种,java、kryo。相对来说 kryo 序列化效率更高,作为推荐 💡:

scala 复制代码
1 spark.serializer org.apache.spark.serializer.KryoSerializer

与 kryo 相关的设置有 📊:

scala 复制代码
1 spark.kryoserializer.buffer,默认值 64k,这个不需要设置,设置值过大会常驻
2 spark.kryoserializer.buffer.max,默认值 64m

不需要设置 spark.kryoserializer.buffer,默认的 buffer 会在 64k 到 64m 动态伸缩,没有特殊需要不需要设置,如果数据比较大,设置 spark.kryoserializer.buffer.max

1.4 并行度设置 ⚙️

常见的并行度配置有两个 🔧:

  1. spark.default.parallelism 默认值:会继承上游 stage 的并行度,主要用于 rdd 的 shuffle 操作
  2. spark.sql.shuffle.partitions 默认值 200,主要用于 sql 的 shuffle 操作

算法作业绝大多数是 rdd 操作,合理设置并行度,事半功倍 💪,后面会专门介绍怎么优化自己的并行度设置 🌟

spark.default.parallelism 不建议设置的非常大。 🚫

相关推荐
大大大大晴天6 分钟前
每天认识一个组件:远端数据服务Apache Celeborn
大数据
幂律智能1 小时前
海外业务不同,合同系统该怎么建?
大数据·人工智能
Leo.yuan1 小时前
数据开发即质量检测:FineDataLink 5.0 在生产数据链路中的一体化实践
大数据
哲霖软件1 小时前
非标机械设备公司怎么做信息化?破解通用ERP水土不服难题
大数据·运维
FYKJ_20101 小时前
django电影推荐系统55066-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
IT毕设梦工厂2 小时前
计算机毕业设计选题推荐:基于大数据的杭州亚运会社交媒体互动数据可视化分析|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·信息可视化·数据挖掘·数据分析·课程设计·数据分析数据可视化
Leo.yuan2 小时前
2026中国数据处理平台行业研究:实时、质量与一体化能力成为竞争重点
大数据
天天喝旺仔2 小时前
gRPC 底层原理:HTTP/2 多路复用、Protobuf 序列化与四种流模式
分布式·http·微服务·rpc
Leo.yuan2 小时前
企业可信Data Agent怎么建:可信分析智能体(Traceable Analytic Agent)的分析链路与验证机制
大数据·人工智能·机器学习
QY_Research_3 小时前
2026-2032年个人安全警报装置市场分析 CAGR4.7% 产业全景报告
大数据·人工智能·安全