Flink的运行架构
一、Flink的架构
Flink运行时由两种类型的进程组成:一个JobManager和一个或者多个TaskManager,采用了典型的Master-Slave架构,如下图:

作业管理器JobManager只负责调度,不负责运行。
任务管理器TaskMananger负责执行程序。
二、Flink运行时的组件
Flink 运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作:作业管理器(JobManager)、资源管理器(ResourceManager)、任务管理器(TaskManager),以及分发器(Dispatcher)。因为 Flink 是用 Java 和 Scala 实现的,所以所有组件都会运行在 Java 虚拟机(JVMs)上。
1.作业管理器(JobManager)
1)控制一个应用程序执行的主进程,也就是说每一个应用程序都会被一个不同的JobManager所控制。
2)JobManager会先接收到要执行的应用程序,这个应用程序会包括:作业图(JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有的类、库和其他资源的JAR包。
3)JobManager会把JobGraph转换成一个物理层面的数据流图,这个图被叫做“执行图”(ExecutionGraph),包含了所有可以并发执行的任务。
4)JobManager会向资源管理器(ResourceManager)请求执行任务必要的资源,也就是任务管理器(TaskManager)上的插槽(slot)。一旦它获

本文详细介绍了Flink的运行架构,包括JobManager、TaskManager、ResourceManager和Dispatcher的角色与职责。JobManager负责作业调度,TaskManager执行任务,ResourceManager管理资源,Dispatcher接收和分发应用。Flink任务提交流程涉及JobManager向ResourceManager申请资源,TaskManager提供slots执行任务。此外,还阐述了Flink任务调度的基本原理。
最低0.47元/天 解锁文章
906

被折叠的 条评论
为什么被折叠?



