flink 运行时的组件
任务管理器TaskManager
flink的工作进程。通常在Flink中会有多个TaskManager运行,每一个TaskManager都包含了一定数量的插槽(slots)。插槽的数量限制了TaskManager能够执行的任务数量。
启动之后,TaskManager会向资源管理器注册它的插槽;收到资源管理器指令后,TaskManager就会将一个或多个插槽提供给JobManager调用。JonbManager就可以向插槽分配任务来执行。
在执行过程中,一个TaskManager可以跟其他运行同一应用程序的TaskManager交换数据。
资源管理器 ResourceManager
主要负责管理务管理器的插槽slot,TaskManager插槽是Flink中定义的处理资源单元。
Flink为不同的环境和资源管理工具提供了不同资源管理器,如YARN、mesos、K8s,以及standalone部署。
当JobManager申请插槽资源时,ResourceManager会将有空闲插槽的TaskManager分配给JobManager。如果ResourceManager没有足够的插槽满足JobManager请求,它还可以向资源提供平台发起会话,以提供启动TaskManager进程的容器。
分发器 Dispatcher
可以跨作业运行,它为应用提供了Rest接口。
当一个应用被提交执行时,分发器就会启动并将应用移交给JobManager。
Dispatcher也会
启动一个 Web UI 用来方便地展示和监控作业执行的信息。
Dispatcher在架构中可能并不是必需的,这取决于应用提交运行的方式。
standalone 模式 flink 任务提交流程

本文深入探讨了Flink运行时的架构,包括TaskManager、ResourceManager和Dispatcher的角色。TaskManager作为工作进程,拥有插槽进行任务执行;ResourceManager负责管理TaskManager的插槽资源,调度JobManager的需求;Dispatcher接收应用提交并启动JobManager。文章还介绍了Flink的并行处理概念,如数据并行、任务并行以及数据传输形式,并强调了TaskManager和slot在并行处理能力中的关键作用。
最低0.47元/天 解锁文章
811

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



