当前位置: 首页 > news >正文

Flink中jobmanager、taskmanager、slot、task、subtask、Parallelism的概念

场景

一个工厂有三个车间每个车间两条生产线

生产流程如下

原料->加工->过滤->分类->美化->包装->下线

JobManager:工厂

在上述场景中,工厂就是jobManager,负责协调、调度和监控整个生产过程

TaskManager:车间

在上述场景中,车间就是taskManager,按照工厂的分配进行生产,所有的问题上报工厂

slot:流水线

在上述场景中,车间的流水线就是slot,是工作台,真正干活的地方,每个车间有2个流水线,3个车间,也就是说这个工厂有6条流水线,就是6个slot

Task:工作

在上述场景中,每一个任务都是一个task,共计7个task

在代码中,source.map.filter.groupby....每一个算子可以成为一个task

Parallelism:并行度

同一个任务(Task),在6个工作台上都可以同时进行,并行度可以设置为6

SubTask:工作实例

在每个工作台上运行的相同任务,相当于任务的实例,也就是subTask

官方概念

jobmanager

Flink中的JobManager是整个Flink作业的主机控制节点,负责协调、调度和监控整个作业的执行过程。JobManager有两种类型:一个是执行图 JobGraph 的 JobManager,另一个是执行宝贵资源的 ResourceManager。JobManager负责接收作业提交请求,将作业转换为执行图JobGraph,并将JobGraph提交给TaskManager执行。JobManager还负责故障恢复,当TaskManager或JobManager发生错误时,JobManager可以跟踪作业状态并计划故障恢复。此外,JobManager还可以协调和分配集群资源,并管理作业的执行策略和调度。

taskmanager

Flink中的TaskManager是Flink分布式计算框架的执行节点。一个Flink集群可以包含多个TaskManager,每个TaskManager可以运行多个任务(Task)。

TaskManager的主要职责是:

  1. 接收并处理来自JobManager的任务分配,将任务划分成不同的子任务(Subtask)并分配到对应的线程池中执行;
  2. 管理和维护线程池,包括线程的创建、销毁、线程的资源分配和管理等;
  3. 从上游的Task或Source中拉取数据,并将数据发送给下游的Task或Sink。

TaskManager和JobManager之间通过RPC进行通信,JobManager会将任务分配给TaskManager后,TaskManager会根据任务的资源需求分配对应的资源并启动任务执行。如果TaskManager在执行任务期间发生故障,JobManager会重新分配任务到其他TaskManager上,以保证任务的正确执行。

Parallelism

指的是在Flink中并行处理数据的任务数。在Flink中,每个任务都可以并行处理数据,而并行度就是指这些任务的数量。在资源充足的情况下,并行度越高,处理数据的速度也就越快。

slot

在Flink中,任务运行需要占用资源,资源的抽象单位称为slot。每个slot包含一定数量的CPU和内存等资源。一个任务需要占用一个或多个slot才能运行。

task

在Flink中,一个任务是指对应一个数据流操作的并行执行实体。任务可以是source任务、transformation任务或sink任务。

subtask

每个任务会被拆分成多个子任务,这些子任务被称为subtask。每个subtask都只处理数据集中的一部分,拆分成多个subtask后可以实现并行处理。

http://www.lryc.cn/news/192041.html

相关文章:

  • OpenHarmony docker环境搭建
  • 【计算机网络】网络编程接口 Socket API 解读(11)
  • Qt工具开发,该不该跳槽?
  • 【深度学习】DDPM,Diffusion,概率扩散去噪生成模型,原理解读
  • HT8699:内置 BOOST 升Y双声道音频功率放大器
  • 利达卓越:关注环保事业,持续赋能科技
  • Spring MVC中通过配置文件配置定时任务
  • AI项目十六:YOLOP 训练+测试+模型评估
  • Flink报错could not be loaded due to a linkage failure
  • 网络工程师--网络安全与应用案例分析
  • 了解油封对汽车安全的影响?
  • 创邻科技Galaxybase—激活数据要素的核心引擎
  • 【Rust笔记】浅聊 Rust 程序内存布局
  • 玻璃生产过程中的窑内压力高精度恒定控制解决方案
  • 创意营销:初期推广的多种策略!
  • 【小黑嵌入式系统第一课】嵌入式系统的概述(一)
  • RK平台使用MP4视频做开机动画以及卡顿问题
  • 通讯网关软件023——利用CommGate X2HTTP实现HTTP访问Modbus TCP
  • Python性能测试框架Locust实战教程!
  • c++视觉处理---仿射变换和二维旋转变换矩阵的函数
  • uiautomator2遍历子元素.all()
  • 【手写数据库toadb】SQL字符串如何被数据库认识? 词法语法分析基础原理,常用工具
  • 手把手教你基于windows系统使用GNVM进行node切换版本
  • c#画五角星
  • 第三章 数据链路层 | 计算机网络(谢希仁 第八版)
  • 李沐机器学习环境配置相关
  • 零基础Linux_16(基础IO_文件)笔试选择题:文件描述符+ionde和动静态库
  • 基于OpenCV的灰度图的图片相似度计算
  • 【python海洋专题二十】subplots_adjust布局调整
  • TensorFlow入门(二十四、初始化学习参数)