Flink原理流程图简单记录

本文详细解析了Apache Flink中的内存分配策略,从Yarn-per-job到ExecutionGraph,包括JobGraph优化、StreamGraph构建,以及网络内存管理。重点介绍了Task内存、JVM元空间和Flink框架内存的配置,以及内存数据结构如内存段的运用。

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

记录一些图片留给自己将来复习回忆

Yarn-per-job启动流程图

在这里插入图片描述

PRC流程图

在这里插入图片描述
Akka基于Actor的RPC通信系统,核心概念也是Message,它是基于协程的,性能好:基于scala的偏函数,易用性高,
但是它毕竟只是RPC通信,无法适用大的package/stream的数据传输,所以更多使用场景还是Netty

任务调度

streamGraph:client内根据顺序串联算子,封装流和边。不是对数据做转换的算子变成边,比如keyBy变成hash StreamEdge
JobGraph: 优化多个操作链。多个StreamNode经过优化后可能会chain合并到一个JobVertex。并且多出顶点的中间数据集

在这里插入图片描述

ExecutionGraph:执行顶点根据并行度展开,中间结果集变成多个中间结果分区

在这里插入图片描述

调度器进行RPC通过网关开启调度真正物理执行

在这里插入图片描述
在这里插入图片描述

内存管理

内存模型
在这里插入图片描述

JVM元空间:默认256mb
JVM执行开销:默认总内存0.1比例
框架内存:TaskManager本身所占用的内存,不计入slot资源中。默认堆内堆外都是128mb
Task内存:堆外内存默认不开启,堆内内存默认none
	(由Flink内存扣除其他内存得到,也就是所有多出的内存都是属于Task内存,Flink内存=总内存-JVM元空间和执行开销)
网络内存:网络数据交换的对外内存。默认大小为Flink内存比例0.1/最小64mb/最大1G
管理内存:默认Flink内存比例0.4

内存数据结构-内存段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
网络传输的内存管理

传输数据:数据进入本地缓冲池,然后进入网络缓冲池,通过网络缓冲池进行数据的传输
接收数据:流程相反
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱肉肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值