登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
问答
标签
导读
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
豆瓜网
精品问答
技术交流
资源下载
本版
帖子
用户
软件
程序
教程
代码
VIP申请
网盘
联系我们
标签
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Flink Parallelism、Flink Slot的关系
Flink Parallelism、Flink Slot的关系
[ 复制链接 ]
能氐吨
昨天 18:00
本文分享自天翼云开发者社区《Flink Parallelism、Flink Slot的关系》,作者:王****帅
1
、Parallelism(并行度)的概念
parallelism 在 Flink 中表示每个算子的并行度。
举两个例子
(1)比如 kafka 某个 topic 数据量太大,设置了10个分区,但 source 端的算子并行度却为1,只有一个 subTask 去同时消费10个分区,明显很慢。此时需要适当的调大并行度。
(2)比如 某个算子执行了比较复杂的操作,导致该算子执行特别慢,那么可以考虑给该算子增加并行度。
如图所示,当前数据流中有 source、map、window、sink 四个算子,除最后 sink,其他算子的并行度都为 2。整个程序包含了 7 个子任务,至少需要 2 个分区来并行执行。我们可以说,这段流处理程序的并行度就是 2。
2
、Slot(任务槽)的概念
slot 是 TaskManager 资源的最小单元。比如 TaskManager 有 5 个slot,那么每个 slot 分配 25% 的内存,所有 slot 共享 TaskManager 的 cpu。
在一个 slot 中可以运行一个或者多个线程。(一个 slot 可以跑同一个job里面,不同算子的不同子任务。)
假如一个 TaskManager 有三个 slot,那么它会将管理的内存平均分成三份,每个 slot 独自占据一份。这样一来,我们在 slot 上执行一个子任务时,相当于划定了一块内存“专款专用”,就不需要跟来自其他作业的任务去竞争内存资源了。所以现在我们只要 2 个 TaskManager,就可以并行处理分配好的 5 个任务了,如图所示。
3
、任务槽和并行度的关系
Slot 和并行度确实都跟程序的并行执行有关,但两者是完全不同的概念。简单来说,taskslot 是 静 态 的 概 念 , 是 指 TaskManager 具 有 的 并 发 执 行能 力 , 可 以 通 过 参 数taskmanager.numberOfTaskSlots 进行配置;而并行度(parallelism)是动态概念,也就是TaskManager 运行程序时实际使用的并发能力,可以通过参数 parallelism.default 进行配置。换句话说,并行度如果小于等于集群中可用 slot 的总数,程序是可以正常执行的,因为 slot 不一定要全部占用,有十分力气可以只用八分;而如果并行度大于可用 slot 总数,导致超出了并行能力上限,那么心有余力不足,程序就只好等待资源管理器分配更多的资源了。(当slot为2,设置Parallel为3,运行Flink任务报错NoResourceAvailableException: Could not acquire the minimum required resources.任务会处于restart状态,等待资源释放)
下面我们再举一个具体的例子。假设一共有 3 个 TaskManager,每一个 TaskManager 中的slot 数量设置为 3 个,那么一共有9 个 task slot,如图 4-16 所示,表示集群最多能并行执行 9个任务。
而我们定义 WordCount 程序的处理操作是四个转换算子:
source→ flatMap→ reduce→ sink
当所有算子并行度相同时,容易看出 source 和 flatMap 可以合并算子链,于是最终有三个任务节点。
如果我们没有任何并行度设置,而配置文件中默认parallelism.default=1,那么程序运行的默认并行度为 1,总共有 3 个任务。由于不同算子的任务可以共享任务槽,所以最终占用的 slot只有 1 个。9 个 slot 只用了 1 个,有 8 个空闲,如图 中的 示例1 所示
如果我们更改默认参数,或者提交作业时设置并行度为 2,那么总共有 6 个任务,共享任务槽之后会占用 2 个 slot,如图中 示例 2 所示。同样,就有 7 个 slot 空闲,计算资源没有充分利用。所以可以看到,设置合适的并行度才能提高效率。
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除
Flink
Parallelism
Slot
关系
相关帖子
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
深入剖析实体-关系模型(ER 图):理论与实践全解析
基于运营商数据的用户关系模型建立示例
Flink-JAVA开发.01-搭建简单的开发环境
Django模型关系:从一对多到多对多全解析
cpu 和垃圾回收的关系
如何基于动态关系进行ORM关联查询,并动态推断DTO?
[Flink/CDC/savepoint] Flink Job 保存点机制
[Flink/序列化/泛型] Flink DataStream 的类型系统(`TypeInformation`)
[Flink] Apache Flink 概述
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
0
672
孟茹云
2025-06-10
安全
深入剖析实体-关系模型(ER 图):理论与实践全解析
0
351
穆望
2025-06-11
安全
基于运营商数据的用户关系模型建立示例
0
771
灼巾
2025-06-20
安全
Flink-JAVA开发.01-搭建简单的开发环境
0
1018
龙玮奇
2025-06-27
业界
Django模型关系:从一对多到多对多全解析
0
162
钿稳铆
2025-07-30
安全
cpu 和垃圾回收的关系
0
333
澹台忆然
2025-08-07
业界
如何基于动态关系进行ORM关联查询,并动态推断DTO?
0
91
甘子萱
2025-08-08
安全
[Flink/CDC/savepoint] Flink Job 保存点机制
0
82
茹静曼
2025-08-08
安全
[Flink/序列化/泛型] Flink DataStream 的类型系统(`TypeInformation`)
0
859
庇床铍
2025-08-11
安全
[Flink] Apache Flink 概述
0
636
喜及眩
2025-09-04
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
代码
科技
签约作者
程序园优秀签约作者
发帖
能氐吨
昨天 18:00
关注
0
粉丝关注
20
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9980
背竽
9992
凶契帽
9990
4
处匈跑
9988
5
松菊
9988
6
胰芰
9986
7
墨淳雅
9986
8
杭环
9986
9
猷咎
9986
10
第璋胁
9986
查看更多