说明
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
特点:
- 一个集群中运行 多个作业
- 作业 共享 集群资源
应用场景
适合执行时间短,频繁执行的短任务