Spark内存管理概览

翻译自Spark官网文档,版本:2.3.0

spark内存管理概览

Spark很大一部分内存用于storage和execution,即存储和执行任务。execution memory指的是在shuffle,join,sorts,aggregation操作中使用的内存,storage memory指的是用于整个集群缓存数据和传播中间数据的内存。

spark中storage和execution分享一个统一的区域(M),当没有execution memory被使用,storage可以占用全部可用内存,反之亦然。storage占用execution memory时且有必要时execution可以驱逐storage,直到storage memory使用量低于一个阈值(R)。也就是说R描述了一个小于M的缓存区域,绝不会被驱逐。execution占用storage memory时因为实现复杂所以storage不会驱逐execution。

spark有两个相关配置项:
1. saprk.memory.fraction,即M,默认为0.6,剩余的40%是为用户数据结构,spark内部数据,防止Out of memory准备的
2. saprk.memory.storageFraction,即R,默认为0.5。

确定内存消耗量

从这里可以了解到,从spark web ui上的Executors页面中的Storage Memory部分看到的数据是storage部分的内存。如何知道某个RDD占用多大内存空间,最直接的方法是将RDD放进缓存中,然后从spark web ui查看Storage Memory即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值