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

Flink运行时的实现细节

一、Flink集群中各角色运行架构

先说Flink集群中的角色吧,有三个分别是客户端(Client)、JobManager、TaskManager。

客户端负责接收作业任务并进行解析,将解析后的二进制数据发送给JobManager;JobManager是作业调度中心,负责对所有作业进行调度;TaskManager是作业执行的工作节点,负责执行具体的工作。其大致流程为:

那么更具体的各个角色的功能是如下图的:

三个角色之间都是通过Actor通信系统进行通信的。

客户端的具体功能就是:解析脚本提交过来的参数并进行封装,然后将任务提交给JobManager。

JobManager中又分为了三个组件:分发器、JobMaster、资源管理器。分发器负责接收任务并为每一个任务开启一个新的JobMaster组件;JobMaster负责处理单个的作业,在作业提交后,他会将JobGraph转化为一个物理层面的数据流图,然后向资源管理器发送请求获取资源,一旦获取到资源以后,JobMaster就会将这个数据流图发送到TaskManager上去执行。资源管理器就是接收JobMaster的资源请求然后去向TaskManager申请资源。

二、并行度

在执行作业时,要处理的数据量很大,可以将一个算子操作复制多分,多个算子共同的执行。那么一个算子的子任务的个数就是这个算子的并行度。而一个程序的并行度是这个程序中所有算子中的最大并行度的值。

三、算子链

在介绍算子链之前应该先介绍不同算子之间的数据流通形式,有一对一形式和重分区形式。一对一形式就是数据由前一个算子直接流向下一个算子;重分区就是数据从前一个算子会进行重新分区的操作之后再发给后面的算子。

算子链就是对并行度相同的且是一对一的算子进行的合并操作,合并之后两个算子就在同一个子任务中执行。这样做的好处就是可以减少不同线程之间的数据交换的时延。

四、任务槽(slot)

Flink中的每一个TaskManager都是一个JVM进程,他可以启动多个线程来执行任务。但是JVM进程能申请到的资源是有限的,它能够让多少个任务来执行呢?每个任务又能分配多少资源呢?这些都是TaskManager设计时的问题。为了解决这些问题,TaskManager在设计时以任务槽(slot)为最小资源分配单位来向线程任务分配资源。这样每个TaskManager就是最多让slot的数量的任务来执行。

任务槽(slot)和并行度都和程序的并行执行有关系。任务槽代表了程序能并行执行的最大程度,是静态的概念;并行度是程序在执行过程中的实际并发程度,是动态的概念。所以必须要求开启的TaskManager的总的任务槽的数量要比设置的并行度的值要大。

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

相关文章:

  • SQL 语言分类
  • Spark 运行流程核心组件(一)作业提交
  • 数据量暴涨时,抓取架构该如何应对?
  • 开发npm包【详细教程】
  • Bevy渲染引擎核心技术深度解析:架构、体积雾与Meshlet渲染
  • C++Linux八股
  • 08--深入解析C++ list:高效操作与实现原理
  • K8S 节点初始化一键脚本(禁用 SELinux + 关闭 swap + 开启 ipvs 亲测实用)
  • 微前端架构:原理、场景与实践案例
  • 前端JS处理时间,适用于聊天、操作记录等(包含刚刚、x分钟前、x小时前、x天前)
  • Windows已经安装了一个MySQL8,通过修改配置文件的端口号跑2个或多个Mysql服务方法,并注册为系统服务
  • lesson36:MySQL从入门到精通:全面掌握数据库操作与核心原理
  • 嵌入式系统学习Day17(文件编程)
  • 项目实战2——LAMP_LNMP实践
  • 智能化评估体系:数据生产、在线化与自动化的三重奏
  • 解锁 Appium Inspector:移动端 UI 自动化定位的利器
  • 【论文阅读】一种基于经典机器学习的肌电下肢意图检测方法,用于人机交互系统
  • Secure CRT做代理转发
  • 【element树组件】el-tree实现连接线及hover编辑效果
  • ip归属地批量查询脚本
  • 视频输入输出模块介绍和示例
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.1 安装 Node.js 与 npm(Windows/macOS/Linux 系统的安装步骤)
  • history命令增强记录执行时间与登录IP
  • 线性代数 · 矩阵 | 最小多项式
  • 【debug 解决 记录】stm32 debug模式的时候可以运行,但是烧录没法执行
  • Mac如何安装telnet命令
  • 论答题pk小程序软件版权的
  • 家政小程序系统开发:推动家政行业数字化转型,共创美好未来
  • 校园快递小程序(腾讯地图API、二维码识别、Echarts图形化分析)
  • 基于开源AI大模型AI智能名片S2B2C商城小程序的母婴用品精准营销策略研究