Flink 使用介绍相关文档目录
前言
Flink提供了Yarn session和application两种模式提交作业。这两种模式有什么区别?分别适用于什么场景?本篇针对这些疑问做出简要总结。
Yarn Session模式
特点:
- 集群需要事先启动。和Standalone模式类似但区别是Yarn session模式运行在Yarn集群上。Yarn session模式中的TaskManager根据作业要求会自动扩缩容。Standalone模式运行于主机上,TaskManager也需要事先启动好,不会自动伸缩。
- 提交到同一个Yarn session中的所有作业共享资源。也就是说这些作业之间会出现争抢资源的情况。但相比Application独占资源来说,资源利用率较高。
- 由于资源共享,每个TaskManager上运行的作业不止一个。这导致了如果某个TaskManager出现故障,可能会影响到多个作业。
- 同一个Yarn session中运行的所有作业使用相同的资源要求,存在一定资源浪费的情况。
适用场景:
- 运行时间短,频繁提交小任务的情形。
- 希望一个Flink Web UI管理统一多个作业的场景。
Application模式
特点:
- 提交作业时启动一个集群,专门为当前作业服务。即JobManager和TaskManager归当前提交的作业独占。作业停止运行后集群也会随之停止运行。
- 作业的main方法在JobManager运行而不是在Flink客户端本地环境运行。
- 因为JobManager和TaskManager独享。因此使用的资源也是独享的。不存在和其他作业争抢资源的情况。作业稳定性较好。
- JobManager或者TaskManager遇到故障,只会影响一个作业。具有更好的隔离性。
- 可以为不同作业配置不同的资源要求,使定制化成为可能,减少资源浪费。
- 引入的依赖也是独立的。不存在和其他作业依赖冲突的问题。
适用场景:
- 任务需要长时间运行,对稳定性要求较高的情形。
- 运行耗资源较多,延迟或者吞吐量敏感的任务。