开发者社区> 问答> 正文

关于任务运行一定时间后,physical内存超出,container被kill,导致任务重启怎么办?

flink环境1.11.0 任务部署方式yarn per-job 状态后台设置的是:env.setStateBackend(new FsStateBackend("ckPath")) 每个taskManager分配8g内存,2个slot 每10分钟做一次checkpoint,每次ck大小平均400k 任务逻辑是:source(kafka)->keyBy->timeWindow->reduce的count计数->redis source(kafka)->sink(s3 文件)

问题是任务每天都会应该container被杀,导致任务重启 Container [pid=26148,containerID=container_e02_1622516404559_0038_01_000008] is running beyond physical memory limits. Current usage: 8.0 GB of 8 GB physical memory used; 9.8 GB of 40 GB virtual memory used. Killing container

我的理解是缓存数据应该不会那么多,怎么就能达到物理内存限制呢,我的window操作,理应都是key下对应一个值,key的数据也不多,缓存应该也只记录这个状态,而且window采用的是reduce操作,来一条处理一条,增量处理,而不是processFunction的攒一批处理一次 望各位大佬帮忙看看,感谢*来自志愿者整理的flink邮件归档

展开
收起
塔塔塔塔塔塔 2021-12-02 15:17:34 1162 0
1 条回答
写回答
取消 提交回答
  • 可以先校对一下yarn的container的虚拟内存和物理内存比例的阈值参数(yarn-site.xml)。*来自志愿者整理的FLINK邮件归档

    2021-12-02 15:39:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
低代码开发师(初级)实战教程 立即下载