Flink的内部原理

Flink TaskManager 与 slots 与 core 与 并行度的关系 1,我先简单的说说自己的理解,Flink可能跟spark不太一样 1)TaskManager 与 slots 比如我们有2个TaskManager 每个TaskManager 设置了3个slot,那么slot总数是6 在执行任务的时候,如下图: 2)slot 与 cpu的关系 每个Flink TaskManager在集群中提供处理槽。 插槽的数量通常与每个Tas... 阅读详情

1. 四大组件的作用

作业管理器(JobManager):
JobManager 会向资源管理器(ResourceManager)请求执行任务必要的资源,也就是任务管理器(TaskManager)上 的插槽(slot),一旦获取到足够的资源, 就会将 '执行图’发送到运行的他们的TaskManager上,进行执行

资源管理器(ResourceManager):
主要负责管理任务管理器(TaskManager)的插槽(slot),TaskManger 插槽是 Flink 中 定义的处理资源单元, 启动的taskManager需要向resourceManager进行注册插槽, 交给它进行管理,分配.

任务管理器(TaskManager):

  • 真正执行任务的工作者, 每个taskManager上的插槽(slot)的数量限制了他的执行能力, 启动之后,会像资源管理器(ResourceManager)进行注册插槽,一旦jobManager将执行图发送过来, 就让插槽(slot)去进行执行任务
  • 每个TaskManager都是一个独立的JVM进程

分发器(Dispatcher):
Dispatcher 也会启动一个 Web UI,用来方便地展示和监控作业执行的信息。Dispatcher 在架构中可能并不是必需的,这取决于应用提交运行的方式

注意: slot就是flink处理任务的资源单位,任务真正都由它来进行执行,它的数量,也决定了TaskManager的执行能力


我们可以通过下面的图,来看一下他们分别负责的是什么内容?

在这里插入图片描述

yarn模式下, 因为有资源调度平台,会不太一样:

Flink 任 务 提 交 后 , Client 向 HDFS 上 传 Flink 的 Jar 包 和 配 置 , 之 后 向 Yarn ResourceManager 提 交 任 务 , ResourceManager 分 配 Container 资 源 并 通 知 对 应 的 NodeManager 启动 ApplicationMaster,ApplicationMaster 启动后加载 Flink 的 Jar 包 和配置构建环境,然后启动 JobManager,之后 ApplicationMaster 向 ResourceManager 申 请 资 源 启 动 TaskManager , ResourceManager 分 配 Container 资 源 后 , 由 ApplicationMaster 通 知 资 源 所 在 节 点 的 NodeManager 启 动 TaskManager , NodeManager 加载 Flink 的 Jar 包和配置构建环境并启动 TaskManager,TaskManager 启动后向 JobManager 发送心跳包,并等待 JobManager 向其分配任务。
如下图: 摘抄之尚硅谷文档
在这里插入图片描述


2.小知识概念

slot概念:
Task Slot 是静态的概念,是指 TaskManager 具有的并发执行能力,可以通过参数 taskmanager.numberOfTaskSlots 进行配置;

并行度(parallelism)概念:
并行度 parallelism 是动态概念, 即 TaskManager 运行程序时实际使用的并发能力,可以通过参数 parallelism.default(默认的并发能力)进行配置,也可以在代码中,或者提交程序时,也可以指定

任务链概念:
相同的并行度的 one to one操作, 且中间没有进行任何的重分区(比如聚合求和,是会进行hash分区的),那么执行图会将这两个算子整合成一个子任务, 但是这样的话, 如果当其中一个算子的操作过于复杂的话,再整合成一个的话,就会有压力, 我们可以在代码中,进行分开任务链,再单独指定slot资源

两个算子合成的任务拆分开:
disableChaining()方法将前后分开或者startNewChain()启动一个新的任务点

单独设置slot资源: 可以缓解slot压力
slotSharingGroup()方法

子任务共享slot:
默认情况下, flink的子任务是可以共享slot的,即使是不同的子任务,但前提就是他们必须来自同一个job(任务),也就是说,如果来了一个任务,它就只使用一个slot就可以了,

注意:slot的数量是会限制并行度的, 并行度的数量不可以超过的slot 的数量,不然程序是没有够多的资源的!!!

flink sql 知其所以然(十一):去重不仅仅有 count distinct 还有强大的 deduplication 想啥呢,小宝贝,还不三连???(关注  +  点赞 + 再看),对博主的肯定,会督促博主持续的输出更多的优质实战内容!!!1.序篇源码公众号后台回复1.13.2 deduplication 的奇妙解析之路获取。下面即是文章目录,也对应到了本文的结论,小伙伴可以先看结论快速了解博主期望本文能给小伙伴们带来什么帮助:背景及应用场景介绍:博主期望你了解到,flink sql 的 deduplication 其实就是 row_number = 1,所以它可以在去重的同时,还能保留原始字段数据来一 阅读详情

相关推荐

深入解析EtherCAT通讯DS402协议下的伺服电机控制模式选择与配置

本文深入解析了EtherCAT通讯DS402协议下的伺服电机控制模式选择与配置,详细介绍了六种核心控制模式(如PPM、CSP、CSV、CST)的应用场景及实战技巧。通过EtherCAT和DS402协议的高效配合,实现工业自动化中伺服电机的精准控制,提升设备性能与稳定性。

h0i1j2k3l的博客 1174

Flink任务调度原理之TaskManager 与Slots

每一个worker(taskmanager)为了控制能接受多少个Task,worker会通过task slot来进行控制,一个worker至少有一个task slot,那么怎么处理呢?总结:1、Flink中每一个TaskManager都是一个JVM进程,它可能会在独立的线程上执行一个或多个subtask;2、为了控制一个TaskManager能接收多少个task,TaskManager会通过task slot来进行控制,一个TaskManager至少有一个slot。

m0_57320261的博客 1605

从USB 2.0到USB 3.x:Synopsys SVT USB VIP配置避坑与接口选择指南

本文详细解析了从USB 2.0到USB 3.x的Synopsys SVT USB VIP配置要点,涵盖协议版本选择、物理接口匹配及UVM层次化架构实现。重点介绍了layering sequence的配置技巧和常见问题解决方案,帮助验证工程师高效避坑并优化验证流程。

weixin_42653691的博客 238

Flink 核心组件 内部原理 多图剖析

一、Flink 整体架构 Flink 集群整体遵循 Master ,Worker 这样的架构模式。 JobManager 是管理节点,有以下几个职责: 接受 application,包含 StreamGraph(DAG),JobGraph(优化过的)和 JAR,将 JobGraph 转换为 Execution Graph 申请资源,调度任务,执行任务,保存作业的元数据,如Checkpoint 协调各个 Task 的 Checkpoint; TaskManager 是工作节点,负责数据交换,跑多个线程的

天道酬勤 976

告别手册!S32K3XX的eMIOS实战:从GPT定时到PWM输出,一个通道搞定电机控制

本文深入探讨了NXP S32K3XX系列MCU的eMIOS模块在电机控制中的高效应用。通过单通道实现PWM生成、输入捕获和定时中断三大功能,展示了如何简化BLDC电机控制硬件设计。文章结合RTD库与寄存器级编程,提供动态模式切换和性能优化方案,显著降低CPU负载。

weixin_42522374的博客 145

Surface Pro 4/5/6/7保姆级黑苹果安装:从Windows分区到OC引导配置全流程(含EFI文件替换避坑)

本文详细介绍了在Surface Pro 4/5/6/7上安装黑苹果的全流程,包括Windows分区、OC引导配置和EFI文件替换等关键步骤。通过实战经验分享,帮助用户避开常见陷阱,实现Windows与macOS双系统完美共存,特别适合对黑苹果安装感兴趣的Surface Pro用户。

weixin_30300225的博客 1358

Flink中TaskManager、Slot和Parallelism

概念简介 JobManager:负责接收Flink Client提交的Job,并将Job分发到TaskManager执行,一个JobManager包含一个或多个TaskManager。 TaskManager:负责执行Client提交的Job。每个TaskManager可以有一个或多个slot,但slot的个数不能多于cpu-cores。 slot:slot是Flink任务的最小执行单位,并行度上限不能大于slot的数量。slot是可以 数量设置 slot数量:slot的数量一般小于等于TM可用的

sinat_24296421的博客 4539

内网环境下 OpenSSL 与 OpenSSH 安全升级实战指南:从 9.9p2 离线部署到回滚方案

本文详细介绍了内网环境下OpenSSL与OpenSSH的安全升级实战指南,重点涵盖从9.9p2版本离线部署到回滚方案的全流程。通过备份策略、动态库处理、权限修复等关键步骤,确保升级过程安全可靠,特别适合金融、政务等敏感行业的内网服务器安全加固。

weixin_30566063的博客 511

大数据计算域——Flink计算引擎

Apache Flink 是一个强大的开源框架和分布式处理引擎,专门用于对无界和有界数据流进行有状态计算。Flink 支持高吞吐量、低延迟的实时数据流处理,同时也能够高效地处理批处理任务。其核心特点包括事件时间处理、有状态操作、容错机制,以及能够在各种常见的集群环境中运行,如 Hadoop、Kubernetes 和自定义集群。Flink 还具有高度可扩展性,能够处理从小规模到大规模的数据集,同时保持较低的内存占用和高效的计算速度。Flink 常用于实时分析、数据管道、流式 ETL、机器学习等场景,广泛应用于

庄小焱 4673

CH7034B显示模块原理图设计,已量产

显示桥接板的价值,不在于简单把 RGB 排线换成另一种接口,而在于能否把并行视频、时钟、显示控制、模拟输出和辅助配置同时组织成稳定系统。当前这张 CH7034B 原理图就是这种思路:U3 CH7034B 作为核心桥接芯片,输入侧是 LCD_R0~R7、LCD_G0~G7、LCD_B0~B7、LCD_DE、LCD_HSYNC、LCD_VSYNC、LCD_CLK 与 LCD_BL,输出侧则通过 DAC0~DAC2 和 DDC_SC/DDC_SD 形成模拟显示接口边界。

不脱发的程序猿 161

微信商家转账报错“当前使用用户过多,请稍后重新确认收款”解决方案

当前使用用户过多,请稍后重新确认收款”这个错误,其实就是典型的参数误处理导致的假报错。记住一句话就行👇JSAPI 场景下的package参数不要做 UrlEncode。如果你也遇到这个问题,希望这篇文章能帮你少踩一个坑。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 784

关于Flume Agent内部原理-Flink进阶认识

Flume Agent内部原理 重要组件: 1 ChannelSelector ChannelSelector的作用就是选出Event将要被发往哪个Channel。其共有两种类型,分别是Replicating(复制)和Multiplexing(多路复用)。 ReplicatingSelector会将同一个Event发往所有的Channel,Multiplexing会根据相应的原则,将不同的Event发往不同的Channel。 2 SinkProcessor SinkProcessor共有三种类

程序员视野 346

D19: OpenClaw 安全性配置指南

在 OpenClaw 的 30 天探索旅程中,我们已经探讨了邮件自动化(D18)。今天进入安全专题,我将分享一个至关重要的话题:OpenClaw 安全性配置指南。 随着 OpenClaw 深入工作流核心,它掌握了越来越多的敏感信息: API Keys(GitHub、飞书、Notion、Jira...) 企业数据(代码库、文档、聊天记录) 个人数据(日历、邮件、任务) 系统权限(文件读写、命令执行、网络访问) 安全不是可选项,而是必选项。一次配置失误可能导致: API Key 泄露 → 账号被盗用权限

刘一说的IT专栏 203

flink开发实战之flink原理解析

flink开发实战之flink原理解析 转载自:https://blog.youkuaiyun.com/aA518189/article/details/82908993

fct2001140269的博客 1493

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Flink 核心组件原理 多图剖析

一、Flink 整体架构Flink 集群整体遵循 Master ,Worker 这样的架构模式。JobManager 是管理节点,有以下几个职责:接受 application,包含 St...

a934079371的博客 396

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Flink Forward 201904 PPT资料下载

本文原文(点击下面阅读原文即可进入)https://www.iteblog.com/archives/2540.htmlFlink Forward 是由 Apache ...

Hadoop技术博文 488

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Flink核心机制与执行流程:DataStream、Task、OP、UDF

本文深入剖析了Apache Flink流处理框架的核心原理与执行机制。首先阐述了Flink作业从客户端提交到TaskManager执行的完整生命周期,包括StreamGraph、JobGraph到ExecutionGraph的转换过程。继而揭示了DataStream API、Transformation、StreamOperator与StreamTask之间的内在联系,详细说明了用户代码(UDF)如何被封装为算子并最终在TaskManager上执行。

lifallen的博客 1430

flink source 同步_Flink深入浅出:JDBC Source从理论到实战

——图片来自水彩画吧@白马苏瓦Flink 1.10之后针对Table API&SQL提供了很多外部连接器,可以使用DDL快速创建外部表,从而可以在Flink中基于SQL直接读取外部数据源。在大数据环境中,有一个很经典的场景是数据交换——即以一定的时间周期把业务库中的数据同步到hive或者hdfs中,下面就先介绍官方的使用方法,再通过源码分析其中的技术细节。1 表定义jdbc表的定义跟普通的...

weixin_39631350的博客 544

Flink 入门

转载自:http://www.aboutyun.com/forum.php?mod=viewthread&tid=18491 问题导读 1.Apache Flink是什么? 2.Flink在实现流处理和批处理时,与传统的一些方案有什么不同? 3.Apache Flink流处理有哪些特性? Apache Flink是一个面向分布式数据流处理和批量数据处理的开

BrotherDong90的专栏 573

Apache Flink:详细入门

Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtime),提供支持流处理和批处理两种类型应用的功能。现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为他们它们所提供的SLA是完全不相同的:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理,所以在实现的时候通常...

weixin_34208185的博客 103

Apache Flink:特性、概念、组件栈、架构及原理分析

Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtime),提供支持流处理和批处理两种类型应用的功能。现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为他们它们所提供的SLA是完全不相同的:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理,所以在实现的时候通常

好读书,每有会意,便欣然忘食。 3015

Flink系列知识讲解之:深入了解 Flink 的网络协议栈

Flink系列知识讲解之:深入了解 Flink 的网络协议栈

大数据开发、JAVA开发、人工智能AI 1415

Apache SeaTunnel Flink引擎执行流程源码分析

本文分析了SeaTunnel 2.3.x版本中Flink引擎的执行流程。核心流程包括:1)通过FlinkTaskExecuteCommand解析配置并创建FlinkExecution实例;2)初始化三大处理器(SourceExecuteProcessor、TransformExecuteProcessor、SinkExecuteProcessor)和Flink执行环境;3)构建DAG依次执行Source、Transform和Sink处理流程。系统采用插件化架构,通过SPI机制动态加载组件,实现了表名映射、类

道可道非常道 1601

Flink - Asynchronous I/O

https://docs.google.com/document/d/1Lr9UYXEz6s6R_3PWg3bZQLF3upGaNEkc0rQCFSzaYDI/edit   // create the original stream DataStream<String> stream = ...; // apply the async I/O transformati...

weixin_34337265的博客 264
上一篇: flink的两种yarn模式
下一篇: tez的 Container killed on request. Exit code is 143问题
First_____
博客等级 码龄6年 132粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值