Flink作业管理器、任务管理器、客户端

本文介绍了Apache Flink的数据流处理架构,包括作业管理器(JobManager)、任务管理器(TaskManager)和客户端的角色与职责。作业管理器负责调度任务、协调故障恢复等;任务管理器执行数据流中的任务并缓存数据;客户端用于提交作业。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的命令行进程中运行命令来运行客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值