flink on yarn:Per-Job模式、Session模式

说明

Flink作业在开发完毕之后,一般提交到 yarn 集群执行,也就是 Flink on yarn 模式

注意

需要启动 yarn,命令如下:

/program/bin/hadoop.sh start

好处

  • 资源按需使用,提高集群的资源利用率

  • 任务有优先级,根据优先级运行作业

  • 基于 Yarn 调度系统,能够自动化地处理各个角色的 Failover

    • JobManager 进程和 TaskManager 进程都由 Yarn NodeManager 监控

    • 如果 JobManager 进程异常退出,则 Yarn ResourceManager 会重新调度 JobManager 到其他机器

    • 如果 TaskManager 进程异常退出,JobManager 会收到消息并重新向 Yarn ResourceManager 申请资源,重新启动 TaskManager

2种集群模式

  • Session模式

  • Per-Job模式

Per-Job模式(企业主流)

  • 每次提交 Flink 任务都会创建一个 新的 Flink 集群
  • 一个集群只运行 一个作业,一个作业一个集群,作业之间相互隔离、互不影响,管理方便
  • 作业执行完毕则 集群销毁

该模式下Flink集群的启动入口是 YarnJobClusterEntryPoint

优点

一个任务挂了、OOM 了、资源耗尽了,完全不会影响其他任务

应用场景

适合长周期执行的任务,集群异常影响范围小。在工作中 推荐使用

Session模式

在 YARN 中提前初始化一个 Flink 集群(称为 Flinkyarn-session),开辟指定的资源,以后的 Flink 任务都提交到这里

这个 Flink 集群会常驻在 YARN 集群中,除非 手动停止

yarn application --kill yarn的任务id

特点:

  • 一个集群中运行 多个作业
  • 作业 共享 集群资源

应用场景

适合执行时间短,频繁执行的短任务


原文出处:/show_1IX2SCp7FrHR.html