Apache spark 旧一代堆内存的逐渐增加

Apache spark 旧一代堆内存的逐渐增加,apache-spark,garbage-collection,spark-streaming,Apache Spark,Garbage Collection,Spark Streaming,我在spark streaming中面临一个非常奇怪的问题。我使用的是spark 2.0.2、节点数3、执行器数3{1个接收器和2个处理器}、每个执行器的内存2GB、每个执行器的内核1。批处理间隔为10秒。我的批量大小约为1000条记录(约150 KB) 我的批次的处理时间从最初的2秒逐渐增加到几分钟,但在最初的40-50小时,它运行得相当好。之后,调度延迟和处理时间开始激增 我试着查看GC,发现驱动程序的旧一代堆内存容量不断增加。这可能是原因吗?我使用内存管理器监视堆内存。容量在六个小时内从1

我在spark streaming中面临一个非常奇怪的问题。我使用的是
spark 2.0.2
、节点数3、执行器数3{1个接收器和2个处理器}、每个执行器的内存2GB、每个执行器的内核1。批处理间隔为10秒。我的批量大小约为1000条记录(约150 KB)

我的批次的处理时间从最初的2秒逐渐增加到几分钟,但在最初的40-50小时,它运行得相当好。之后,调度延迟和处理时间开始激增

我试着查看GC,发现驱动程序的旧一代堆内存容量不断增加。这可能是原因吗?我使用内存管理器监视堆内存。容量在六个小时内从1161216字节增加到1397760字节

驱动程序运行的机器有8个物理内核,经过40-50小时的流式处理后,机器上的CPU使用率在所有8个内核上都是100%,旧一代堆使用率已满,FullGC非常频繁

我也看到过一个例子,它说spark streaming中存在内存泄漏,但它也说spark 1.5之后解决了这个问题。这是否相关

编辑

我还在应用程序启动后大约50小时进行堆转储


为什么有这么多scala.collection.immutable.$colon$colon的实例?

问题已经解决。请查看此信息并升级spark。

您在数据流上执行的操作是什么?一些聚合,加入cassandra并存储回Cassandram。批处理间隔为20秒