Flink的进程组成:

  • 一个作业管理器(Job Manager)
  • 一个或多个任务管理器(Task Manager)

一、作业管理器

一、作业管理器介绍

作业管理器也被称为Master。每个作业至少有一个作业管理器。在高可用部署下会有多个作业管理器,其中一个作为Leader,其他的处于待机(Standby)状态

二、作业管理器的主要职责
  • 负责调度任务:决定何时安排下一个任务(或一组任务),对完成的任务或执行失败的任务做出反应
  • 协调分布式计算
  • 协调检查点
  • 协调故障恢复
三、作业管理器的三个组件
  • 资源管理器(Resource Manager):管理任务插槽(Task Slot),负责Flink集群中的资源取消和分配。这些任务插槽式Flink集群中资源调度的单位。Flink为不同的环境和资源提供者(如YARN、Mesos、Kubernetes和独立部署)实现了多个任务管理器。在独立设置中,资源管理器只能分配可用任务管理器的插槽,而不能自行启动新的任务管理器
  • 作业主管(Job Master):负责管理单个作业图的执行。在Flink集群中,可以同时运行多个作业,每个作业都有自己的Job Master
  • 调度器(Dispatcher):通过提供REST界面来提交Flink应用程序以供执行,并为提交的每个作业启动一个新的Job Master。它还可以运行Flink Web UI,以提供有关作业执行的信息

二、任务管理器

任务管理器也被称为工作进程(Worker)。任务管理器执行数据流中的任务,准确来说是子任务(Subtask),并且缓存和交换数据流。

每个作业至少有一个任务管理器。任务管理器连接到作业管理器,通知作业管理器自己可用,然后开始接手被分配的工作

三、客户端

客户端不是执行引擎的一部分,而是用来准备和提交数据流到作业管理器的。在提交完成后,客户端既可以断开连接,也可以保持连接以接受进度报告。客户端既可以作为触发执行的Java/Scala程序的一部分,也可以在Flink的命令行进程中运行命令来运行客户端