Spark 任务内存设置及分析调优

本文主要探讨Spark的内存划分,以Spark 1.6为例,详细解析安全空间、缓存空间、反序列化空间和Shuffle空间的计算方式。同时,介绍了Spark 2.x版本的联合内存(Unified Memory)机制,以及JVM内存的分配原则,包括如何设置-Xms、-Xmx等参数。此外,提供了相关内存优化的博客链接作为参考。

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

进入大数据领域后,零碎的接触很多东西,很多都是当时很清楚,过了一段时间就忘记了,所以整理一篇博客记录下:

先上一个看到比较好的博客,有时间在把自己的总结写下来:https://www.cnblogs.com/dreamfly2016/p/5720180.html

一.Spark 的内存划分,以spark 1.6 为例:

假设一个excutor 设置内存为10G:

1.安全空间(safe)为:10G*0.10=1G,也就是说安全空间占比10%,此部分空间是为了避免内存溢出设置的安全措施,设置参数

    为:spark.storage.safetyFraction

2.缓存空间(Storage):10G*0.9*0.6=5.4G,缓存空间就是总内存减去安全空间后,剩余空间的百分之六十。设置

   为: spark.executor.memory x spark.storage.safetyFraction x spark.storage.memoryFraction,storage空间就是spark加载缓存数据的地方,所以他的大小就决定了你能缓存到内存处理多少数据

3.反序列化空间(Unroll):5.4G*0.2=1.08G ,Unroll 空间就是Storage空间的百分之二十,专门用来缓存序列化数据,进行反序列化,该

   操作优先级较高,可能会挤出其它缓存。设置参数为spark.storage.unrollFraction

4.shuffer空间:10G*0.2*0.8=16G,当进行shuffer时会在该空间进行,shuffer空间为总空间的20%,后面乘以的0.8是因为shuffer空

   间也有一个默认的安全空间,占比为shu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值