【大数据分析】Spark调优方案之资源参数调优

本文详细介绍了Spark作业的资源参数调优,包括num-executors、executor-cores、executor-memory和driver-memory的设置建议。同时,针对shuffle操作,讨论了spark.shuffle.file.buffer和spark.reducer.maxSizeInFlight等参数如何调整以优化性能,并提到了重试和等待间隔参数对shuffle稳定性的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

资源参数说明

num-executors
参数说明:该参数用于设置Spark作业总共要用多少个Executor进程来执行。
参数调优建议:每个Spark作业的运行一般设置50-100个左右。

executor-cores
参数说明:该参数用于设置每个Executor进程的CPU core数量。
参数调优建议:2-4。根据不同部门的资源队列来定,可以看看资源队列的最大CPU core限制是多少,此外,如果你是跟团队里其他人共享这个资源队列,num-executors * executor-cores不要超过队列总CPU core的1/3-1/2左右比较合适,最好的应该就是一个cpu core对应两到三个task。

executor-memory
参数说明:该参数用于设置每个Executor进程的内存。
参数调优建议:4G-8G。num-executors*executor-memory是不能超过队列的最大内存量的。此外,如果你是跟团队里其他人共享这个资源队列,那么申请的内存量最好不要超过资源队列最大总内存的1/3~1/2。

driver-memory
参数说明:该参数用于设置Driver进程的内存。
参数调优建议:Driver的内存通常来说不设置,或者设置1G左右应该就够了。唯一需要注意的一点是,如果需要使用collect算子将RDD的数据全部拉取到Driver上进行处理,那么必须确保Driver的内存足够大,否则会出现OOM内存溢出的问题。

spark.storage.memoryFraction
参数说明:该参数用于设置RDD持久化数据在Executor内存中能占的比例,默认是0.6。
参数调优建议&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值