1.flink集群架构
flink集群架构主要包括JobManager、TaskManager、Client等内容。
- JobManager:管理节点,每个集群至少一个,管理整个集群计算资源,Job管理与调度执行,以及checkpoint协调。
- TaskManager:每个集群有多个TM,负责计算资源提供。
- Client:本地执行应用main()方法解析JobGraph对象,并最终将JobGraph提交到JobManager运行,同时监控Job执行的状态。
2.flink集群部署模式(Session、Per-Job、Application)
根据2种条件将集群部署模式分为三种类型:
- 集群的生命周期和资源隔离
- 根据程序main()方法执行在client还是JobManager
- 1.Session Mode:共享JobManager和TaskManager,所有提交的job都在一个Runtime中运行。
- 2.Per-Job Mode:独享JobManager和TaskManager,为每个job单独启动一个Runtime。
- 3.Application Mode:Application的main()运行在cluster上,而不是在客户端,每个Application对应一个Runtime,Application中可以含有多个job。
3.集群资源管理器支持(Standalone,Yarn,Kubernetes)
flink集群部署-Cluster Management支持,flink支持:Standalone,Hadoop Yarn,Kubernetes、Docker、Apache Mesos),其中yarn、kubernetes支持最友好。