一、作业管理器(JobManager)
1、控制一个应用程序执行的主进程,每个应用程序都会被一个不同的JobManager所控制。
2、JobManager会先接收到应用程序,应用程序包括:作业图(JobGraph)、逻辑数据流图和打包的所有类库和其他资源的Jar包。
3、JobManager会把JobGraph转换成一个物理层面的数据流图,这个图被叫做“执行图”(ExecutionGraph),包含了所有可以并发执行的任务。
4、JobManager会向资源管理器(ResourceManager)请求执行任务必要的资源,也就是任务管理器上的slot。一旦获取到足够的资源,就会将执行图分发到真正运行的TaskManager上。
二、任务管理器(tastManager):
- Flink 中的工作进程。通常在Flink 中会有多个TaskManager运行,每一个TaskManager都包含了一定数量的插槽(slots)。插槽的数量限制了TaskManager能够执行的任务数量。
- 启动之后,TaskManager会向资源管理器注册它的插槽;收到资源管理器的指令后,TaskManager就会将一个或者多个插槽提供给JobManager调用。JobManager就可以向插槽分配任务tasks来执行了。
- 在执行过程中,一个TaskManager可以跟其他运行同一应用程序的TaskManager交换数据。
三、资源管理器(ResourceManager):
- 主要负责管理任务管理器TaskManager的插槽(slots)&