java - flink taskmanager 因 OOM 失败
问题描述
有一个听 kafka 主题的 flink 工作,所有的工作就是听 kafka 并将消息插入到弹性搜索中。由于其中一位任务管理器进入 OOM,这项工作一直失败。
我在 3gb 内存的 kubernetes 中使用 flink docker。但我在任务管理器日志中看到失败。我没有使用任何特殊功能,只是听和写弹性。
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "I/O dispatcher 2945"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "pool-1170-thread-1"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "I/O dispatcher 5441"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "I/O dispatcher 2467"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "pool-3944-thread-1"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "pool-2651-thread-1"
解决方案
@Thanks Arvid,我们确实挖掘了日志,发现 ES 在修复它并使用rocksDB作为后端状态后泄漏了一个连接代码问题,我们在增量检查点打开的情况下运行平稳。
推荐阅读
- latex - MathJax 的 Bordermatrix 替代方案
- javafx - 没有css的JavaFX TreeTableView动态样式
- android - 任务 whenAllSuccess 返回 Uri 而不是 List
- java - 将 JSON 与记录中的列表绑定
- python - 如何从json流中解析对象
- excel - 如何更改此脚本对数据进行分组的方向?
- maven - 在 Karaf 容器中打包和部署 OSGi 包和 Karaf 功能
- javascript - Gmail 拒绝呈现图像背景 url 属性
- java - 分离实体传递给坚持:不允许我保存对象
- python - 创建一个字典,名字作为键,与键关联的全名作为值