部署模式
flink可以通过以下三种模式部署:
- Session Mode
- Per-Job Mode
- Application Mode
以上方式主要区别在于
- 集群生命周期和资源隔离保证
- 应用程序的main方法是在客户端还是在集群上执行。
Session Mode(会话模式)
会话模式假定存在已经在运行的集群,并使用该集群的资源来执行任何提交的应用程序。在同一(会话)集群中执行的应用程序使用并因此竞争相同的资源。这样做的好处是,您不必为每个提交的作业都创建集群。但是,如果其中一项作业行为不当或关闭了taskmanager,则该taskmanager上运行的所有作业都会受到故障的影响。除了对导致故障的作业产生负面影响外,这还意味着潜在的大规模恢复过程。此外,只有一个集群运行多个作业意味着JobManager的负载增加,JobManager负责簿记集群中所有作业。
Per-Job Mode
为了提供更好的资源隔离保证,Per-Job模式使用可用的集群管理器框架(例如YARN,Kubernetes)为每个提交的作业启动集群。该群集仅适用于该作业。作业完成后,集群将被torn down,所有附属的资源(文件等)将被清除。这提供了更好的资源隔离,因为行为不当的工作只能拖垮其自己的taskmanager。另外,由于每个作业有一个,因此它可以将簿记工作分散到多个JobManager中。== 由于这些原因,由于许多生产原因,首选工作资源分配模型是首选模式。==