- 更新 - 我们发现当遇到“com.amazonaws.services.kinesis.clientlibrary.exceptions.ShutdownException时无法更新检查点 - 实例不保存此分片的租约”https://github.com/awslabs/amazon-kinesis-client/issues/108我们使用s3目录时发生以下情况(和dynamodb)存储检查点,但如果发生这种情况,块不应该卡住但继续从内存中优雅地逐出,显然kinesis库竞争条件是一个问题本身...
遇到问题(也提交了关于下面主题的火花jira任务)“块流”(有些不是全部)持续导致OOM
App是用java编写的标准kinesis / spark流媒体应用程序(spark版本是2.0.2)
最初运行良好,自动SparkCleaner完成其工作,很好地回收流媒体作业(通过查看管理员中的存储选项卡进行验证)
然后一段时间后,一些块卡在内存上,例如其中一个执行器节点上的这个块
输入-0-1485362233945 1 ip - <>:34245内存序列化1442.5 KB
经过更长时间后,更多的块被卡住并且从未被释放
据我所知,SparkContext清理器将触发删除或更旧的块,并以给定的间隔触发System.gc,默认为30分钟
感谢对此的任何反馈,因为此问题可以防止应用程序的100%正常运行时间
如果这可能有价值,我们使用StorageLevel.MEMORY_AND_DISK_SER()
您可以尝试手动执行驱逐:
我已经为mapWithState和其他使用内存的东西使用了类似的hack。