Spark参数spark.executor.memoryOverhead与spark.memory.offHeap.size的区别

本文探讨了Spark执行器堆外内存的两个关键参数:spark.executor.memoryOverhead和spark.memory.offHeap.size的区别。通过分析计算公式和实践观察,得出结论:spark.memory.offHeap.size是实际使用堆外内存,而spark.executor.memoryOverhead用于通知YARN。建议在设置堆外内存时,确保spark.executor.memoryOverhead大于等于spark.memory.offHeap.size以避免OOM问题。

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

最近疑惑一个问题,spark executor的堆外内存问题,堆外内存很好理解,这里不再解释,疑惑的是它的设置,看过官网就知道设置堆外内存的参数为spark.executor.memoryOverhead与spark.memory.offHeap.size(需要与 spark.memory.offHeap.enabled同时使用),其中这两个都是描述堆外内存的,但是它们有什么区别么?
 
因为对两个参数不是很理解,所以我在集群上找了个任务,对这两个参数进行研究。
 
 
我是通过storage memory的计算来分析,因为storage memory的计算中包含了堆外内存。
 
正确的:
 
storage memory = (spark.executor.memory - 300M) * spark.storage.memoryFraction * spark.storage.safetyFraction + 堆外内存
 
 
如果想详细了解请看我的另一篇博客 https://blog.csdn.net/lquarius/article/details/106558464
 
已知:
 
storage memory    4.7G(见下图)
spark.executor.memory    1G(默认 )
spark.storage.memoryFraction 0.6(默认 )
spark.storage.safetyFraction 0.5(默认 )
spark.executor.memoryOverhead   5G<
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值