1.Flink 运行时的角色
Flink系统架构中包含了两个角色,分别是JobManager和TaskManager,是一个典型的Master-Slave架构。JobManager相当于是Master,TaskManager相当于是Slave。
Clinet 负责将当前的任务提交给JobManager,提交任务的常用方式:命令提交、web页面提交。当Client提交任务之后,客户端可以断开连接(detached mode),也可以保持连接状态来接收任务的报告(attached mode)。
JobManager和TaskManager启动方式,standalone 集群模式,或者交给资源管理器如YARN或Mesos)进行管理。
1.1 JobManager(JVM进程)作用
- 负责整个集群的资源管理与任务管理
- checkpoint
- 协调对故障恢复
note: 在一个集群中只能由一个正在工作(active)的JobManager,如果HA集群,那么其他JobManager一定是standby状态
主要包含三个不同的组件:ResourceManager、Dispatcher、JobMaster
1.1.1: ResourceManager 资源管理器
- 主要负责管理任务管理器(TaskManager)的插槽(slot),TaskManger插槽是Flink中定义的处理资源单元。
- Flink为不同的环境和资源管理工具提供了不同资源管理器,比如YARN、Mesos、K8s,以及standalone部署。
- 在standalone 部署中,ResourceManager只能分配可用TaskManager的插槽,而不能自行启动新的TaskManager。
- 当JobManager申请插槽资源时,ResourceManager会将有空闲插槽的TaskManager分配给JobManager。如果ResourceManager没有足够的插槽来满足JobManager的请求,它还可以向资源提供平台发起会话,以提供启动TaskM