开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink standalone模式,jobmanager无法回收fail的任务,这个怎么解决的?

flink standalone模式,jobmanager无法回收fail的任务,导致oom这个怎么解决的?

展开
收起
真的很搞笑 2023-11-21 08:11:49 84 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    如果你在 Apache Flink Standalone 模式下遇到了 jobmanager 无法回收 fail 的任务并导致 oom (Out Of Memory)问题,你可以尝试以下方法:

    1. 增加 jobmanager 和 taskmanager 的 heap 大小:在 conf/flink-conf.yaml 文件中,你可以增加 jobmanager.memory.process.sizetaskmanager.memory.process.size 参数以增加内存大小。这可以防止 oom 问题的发生。
    2. 合理分配 taskmanager 数量:在 conf/flink-conf.yaml 文件中,你可以增加 taskmanager.numberOfTaskSlots 参数来增加 taskmanager 的数量,从而分担工作负载,减少 oom 的可能性。
    3. 使用 slot 共享:在 Flink 中,你可以设置 taskmanager 之间的共享slot数量,以减少 oom 的风险。
    4. 使用合理的并行度:在 Flink SQL 中,你可以设置合理的并行度,以减少 oom 的风险。
    2023-11-21 14:03:30
    赞同 1 展开评论 打赏
  • 在Flink的standalone模式下,如果JobManager无法回收失败的任务,导致OOM(OutOfMemoryError),你可以尝试以下方法来解决:

    1. 增加JobManager的内存:在启动Flink时,可以通过设置-Djobmanager.memory.process.size参数来增加JobManager的内存。例如,你可以设置为-Djobmanager.memory.process.size=2048m

    2. 优化任务并行度:如果任务的并行度过高,可能会导致大量的任务管理开销,从而引发OOM。你可以尝试降低任务的并行度,以减少任务管理开销。

    3. 调整任务恢复策略:在Flink中,可以通过设置execution.checkpointing.restore-strategy参数来调整任务恢复策略。例如,你可以设置为execution.checkpointing.restore-strategy=ALWAYS,这样即使任务失败,也会立即重启任务,而不是等待所有任务完成后再恢复。

    4. 增加TaskManager的数量:如果单个TaskManager的内存不足以容纳所有的任务,你可以尝试增加TaskManager的数量,以分散任务的负载。

    5. 清理失效的Checkpoint:如果失效的Checkpoint占用了大量的内存,你可以尝试删除这些失效的Checkpoint,以释放内存。

    2023-11-21 09:16:52
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载