登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP申请
VIP网盘
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Flink Parallelism、Flink Slot的关系
Flink Parallelism、Flink Slot的关系
[ 复制链接 ]
科元料
昨天 19:46
本文分享自天翼云开发者社区《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
关系
相关帖子
QT 简化信号、槽(SIGNAL、SLOT)机制的方法
JAVA语言中多态和修饰符的关系
从零开始学Flink:揭开实时计算的神秘面纱
springboot~关系数据库索引和外键
Django模型关系:从一对多到多对多全解析
cpu 和垃圾回收的关系
如何基于动态关系进行ORM关联查询,并动态推断DTO?
[Flink/CDC/savepoint] Flink Job 保存点机制
[Flink/序列化/泛型] Flink DataStream 的类型系统(`TypeInformation`)
[Flink] Apache Flink 概述
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
QT 简化信号、槽(SIGNAL、SLOT)机制的方法
0
137
闰咄阅
2025-06-07
业界
JAVA语言中多态和修饰符的关系
0
965
阎一禾
2025-06-08
业界
从零开始学Flink:揭开实时计算的神秘面纱
0
384
诘琅
2025-06-08
安全
springboot~关系数据库索引和外键
0
944
呼延冰枫
2025-07-18
业界
Django模型关系:从一对多到多对多全解析
0
1048
福清婉
2025-07-30
安全
cpu 和垃圾回收的关系
0
943
祝安芙
2025-08-07
业界
如何基于动态关系进行ORM关联查询,并动态推断DTO?
0
437
嗦或
2025-08-08
安全
[Flink/CDC/savepoint] Flink Job 保存点机制
0
153
荏牌
2025-08-08
安全
[Flink/序列化/泛型] Flink DataStream 的类型系统(`TypeInformation`)
0
594
列蜜瘘
2025-08-11
安全
[Flink] Apache Flink 概述
0
457
啸妹回
2025-09-04
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
科元料
昨天 19:46
关注
0
粉丝关注
19
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
凶契帽
9988
5
氛疵
9988
6
猷咎
9986
7
接快背
9986
8
里豳朝
9986
9
肿圬后
9986
10
段干叶农
9986
查看更多