Flink Session 集群任务运⾏完后 TaskManager 30s 释放资源

  • 场景
    Flink 批任务提交中,如果任务运行结束后,整个作业的 TaskManager 会释放掉资源,下次如果继续往这个 Session 集群新提交任务的话,会重新申请 TaskManager。但是如果作业需要较多的 TaskManager 的话,申请资源的时间会较长,对于分钟级别的调度任务会有较大的影响。

  • 原因
    通常会出现这个日志:TaskExecutor exceeded the idle timeout.
    resourcemanager.taskmanager-timeout:
    这个配置可使TaskManager 尽可能的常驻,减少频繁申请资源的时间,默认TaskManager 超时时间是30s,源码如下:

    • ResourceManagerOptions类
  • 解决方法
    如果要让分钟级别的任务运行的集群中的 TaskManager 尽可能常驻,可以通过增加 resourcemanager.taskmanager-timeout 参数的值来实现。具体来说,如果将该参数设置为 10 分钟,那么 Flink Session 集群中有空余的 TaskManager 超过 10 分钟,就会将它们的资源释放掉,以便其他作业可以使用。这样可以减少频繁申请资源的时间,提高作业的整体执行效率。

请使用浏览器的分享功能分享到微信等