Flink Runtime 整体架构
Flink Runtime 层的主要架构如下图所示,它展示了一个 Flink 集群的基本结构。整体来说,它采用了标准 master-slave 的结构,master负责管理整个集群中的资源和作业;TaskManager 则是 Slave,负责提供具体的资源并实际执行作业。
Master 部分包含三个组件:Dispatcher、ResourceManager 和 JobManager。
- Dispatcher:负责接收用户提供的作业,并为作业拉起一个新的 JobManager 组件。
- ResourceManager:负责资源的管理,整个集群中只有一个 ResourceManager。
- JobManager:负责管理作业的执行,每个作业都有各自的 JobManager 组件。
作业执行基本流程:
- 当用户提交作业时,提交脚本首先启动一个 Client 进程负责作业的编译与提交。
Clinet 首先将用户的代码编译为一个 JobGraph ,这个过程会进行一个检查或优化等工作。如判断哪些算子可以chain到同一个 Task 中。
然后,Clinet 将产生的 JobGraph 提交到集群中执行。
提交时有两种情况:
1)S