Flink 运行时的组件介绍
Flink 运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作(因为 Flink 是用 Java 和 Scala 实现的,所以所有组件都会运行在 Java 虚拟机上)
一、作业管理器 (JobManager)
JobManager控制一个应用程序执行的主进程叫JobMaster,提交的每一个应用程序都会被一个不同的 JobMaster 所控制执行。
JobMaster 会先接收到要执行的应用程序,这个应用程序会包括: 作业图(JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有的类、库和其它资源的 JAR 包。JobMaster 会把 JobGraph 转换成一个物理层面的数据流图,这个图被叫做 “执行图”(ExecutionGraph),包含了所有可以并发执行的任务。
JobMaster 会向资源管理器(ResourceManager)请求执行任务必要的资源,也就是任务管理器TaskManager)上的插槽(slot)。一旦它获取到了足够的资源,就会将执行分发到真正运行它们的TaskManager 上。
而在运行过程中,JobMaster 会负责所有需要中央协调的操作,比如说检查点(checkpoints)的协调。
二、资源管理器(ResourceManager)
主要负责管理任务管理器(TaskManager)的插槽(slot),TaskManger 插槽是 Flink中定义的处理资源单元。
Flink 为不同的环境和资源管理工具提供了不同资源管理器,比如YARN、Mesos、K8s,以及standalone 部署。
当 JobManager 申请插槽资源时,ResourceManager会将有空闲插槽的 TaskManager 分配JobManager。如果 ResourceManager 没有足够的插槽来满足 JobManager的请求,它还可以向资源提供平台发起会话,以提供启动 TaskManager进程的容

Flink的运行时主要包括JobManager、ResourceManager、TaskManager和Dispatcher四个组件。JobManager负责作业执行的协调,包括JobGraph到ExecutionGraph的转换和checkpoint的协调。ResourceManager管理TaskManager的插槽资源。TaskManager执行任务并与其他TaskManager交换数据。Dispatcher则接收和分发应用程序。在YARN模式下,FlinkClient提交任务给ResourceManager,后者启动ApplicationMaster即JobManager,然后申请和分配TaskManager资源。
最低0.47元/天 解锁文章
434

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



