前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spark内存模型概论

spark内存模型概论

作者头像
shengjk1
发布2018-12-06 09:33:29
9440
发布2018-12-06 09:33:29
举报
文章被收录于专栏:码字搬砖码字搬砖

背景: 自从开始接触spark之后就一直很奇怪spark on yarn到底是怎么样跑起来了,具体的内存占用是怎么分配的?如果container的内存小于–executor-memory的话,spark程序能够跑起来吗?记得在某次的面试中还问过别人这个欠揍的问题,?。另外最近程序也老是莫名其妙的被kill掉了,要么就是exit 137等。

组件: 基于spark2.2.x

正文:

spark on yarn内存模型

此处的off-heap特指spark使用堆外内存,配置参数如:spark.memory.offHeap.*

下面我们着重说一下spark memory,自从spark1.6之后spark默认使用UnifiedMemoryManager作为spark默认的内存管理者。所以此处会基于UnifiedMemoryManager来说明一下spark有趣的内存管理方式

我们把图一中spark memory的内存放大之后来看

然后把executor memory放大来看

一个特别有意思的地方就是storage memory与execution memory会相互借内存 最后特别感兴趣的小伙伴们,可以去查看一下UnifiedMemoryManager的源码。对了回答一下开头的欠揍的问题,当container的内存小于Executor memory时spark程序会跑起来吗?这个得具体分析,spark on yarn有一个参数默认是达到executor memory *0.8, spark程序即可以跑起来

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年11月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档