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

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.xdnf.cn/news/17681.html

相关文章:

  • COAT: 压缩优化器状态和激活以实现内存高效的FP8训练
  • apache+虚拟主机
  • @(AJAX)
  • 使用Spring Boot对接欧州OCPP1.6充电桩:解决WebSocket连接自动断开问题
  • 日志管理--g3log
  • 前端项目一键换肤
  • IEEE 2025 | 重磅开源!SLAM框架用“法向量+LRU缓存”,将三维重建效率飙升72%!
  • 单例模式,动态代理,微服务原理
  • 操作系统1.6:虚拟机
  • 从原理到实践:一文掌握Kafka的消息生产与消费
  • 【bug 解决】串口输出字符乱码的问题
  • pdftk - macOS 上安装使用
  • 干货分享|如何从0到1掌握R语言数据分析
  • OpenAI传来捷报,刚刚夺金IOI,实现通用推理模型的跨越式突破
  • 如何实现PostgreSQL的高可用性,包括主流的复制方案、负载均衡方法以及故障转移流程?
  • 【接口自动化】-11-接口加密签名 全局设置封装
  • 容器安全扫描工具在海外云服务器环境的集成方法
  • Element用法---Loading 加载
  • npm、pnpm、yarn区别
  • 一周学会Matplotlib3 Python 数据可视化-绘制饼状图(Pie)
  • 前沿技术借鉴研讨-2025.8.12 (数据不平衡问题)
  • Web项目Excel文件处理:前端 vs. 后端,企业级如何选择?
  • 【3】Transformers快速入门:大语言模型LLM是啥?
  • 11-docker单机版的容器编排工具docker-compose基本使用
  • centos 7 如何安装 ZipArchive 扩展
  • MySQL 数据库表操作与查询实战案例
  • MySQL概述
  • 计算机网络:ovn数据通信都是用了哪些协议?
  • 集成电路学习:什么是URDF Model统一机器人描述格式模型
  • 智能合约执行引擎在Hyperchain中的作用