架构
JobManager是老大,TaskManager是干活的。

一个作业一个jobMaster,通过分发器来启动。

TaskManager包含若干个task slots。
slot是资源调度最小单位,其数量限制了TaskManager能够并行处理的任务数量。
并行度、子任务

一个流程序的并行度,可以认为是其所有算子中最大的并行度。
设置优先级:算子 > env > 提交命令 > flink.conf
算子链
当不发生重分区时,算子是可以合并成算子链的。
可以手动解开,在排查问题的时候用到。
任务槽(Task Slots)
线程
taskmanager.numberOfTaskSlots
内存完全隔离,cpu不隔离
建议slot数量配置为机器的cpu核心数,避免不同任务cpu竞争
同一个作业中,不同算子的子任务,可以在同一个slot上同时执行。前提是属于同一个slot共享组,默认都是“default”。算子.slotSharingGroup("组名")

任务槽和并行度
任务槽:静态,最大的并发上限
并发度:动态,实际使用的并发
slot任务槽数量 >= 并发度,job才能运行
注意:yarn模式,动态会申请TM
本文讲述了ApacheFlink中的JobManager和TaskManager在分布式计算中的职责,强调了slot作为调度的基本单位,以及如何设置并行度、优先级和slot数量以优化性能。特别提到在YARN模式下,动态并发和slot的使用注意事项。
2473

被折叠的 条评论
为什么被折叠?



