前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Spark运行流式计算程序中跑一段时间出现GC overhead limit exceeded

关于Spark运行流式计算程序中跑一段时间出现GC overhead limit exceeded

作者头像
sparkexpert
发布2018-01-09 11:57:11
6690
发布2018-01-09 11:57:11
举报
文章被收录于专栏:大数据智能实战

最近在升级一个框架的时候,发现某个流式计算程序每隔一定的时间就会出现GC overhead limit exceeded的错误问题。

这个问题肯定是内存不够,但是初始设置的内存是够的啊,于是进行各种内存优化,如将变量定义在循环体外等控制,但是发现只是将这个间隔时间往后推了一下而已。

还是没有找到症结所在。

后来再分析了下,可能是哪些变量占了内存没有及时释放掉,

看到了好几个dataframe的cache代码,但这个cache应该 spark有个自动释放清理的机制的。

为了进行测试,手动添加unpersist进行内存释放,再上线,发现问题果然消失了。

原来这个问题真的是内存的问题。

再仔细看了下官方说明。

Spark automatically monitors cache usage on each node and drops out old data partitions in a least-recently-used (LRU) fashion. If you would like to manually remove an RDD instead of waiting for it to fall out of the cache, use the RDD.unpersist() method.

可能还是这个自动机制在流式计算中有点赶不上,导致出现的错误。这个坑还是非常深。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
流计算 Oceanus
流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的企业级实时大数据分析平台,具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档