推广 热搜:     系统  行业  参数  教师  中国  机械  设备  基金 

Flink的四大组件、yarn per-job模式提交流程、Slot、并行度

   日期:2024-11-26     移动:http://mip.tpjde.com/quote/1215.html

Snipaste_2022-02-18_01-53-06.png

Fl<em></em>ink的四大组件、yarn per-job模式提交流程、Slot、并行度

1.1 JobManager 作业管理器

 

1.2TaskManager 任务管理器

 

1.3 ResourceManager 资源管理器

 

1.4 Dispatcher 分发器(yarn模式提交流程没有分发器)

 

2.1抽象版

此处ResourceManager不是Yarn的

Snipaste_2022-02-18_02-02-01.png

 

2.2总结四大组件

 

Snipaste_2022-02-18_02-21-27.png

 

4.1 简介

 

4.2并行度优先级

 

5.1简介

 

5.2 TaskManager和Slot的关系

 

5.3 共享组的理解

5.4 共享组简介和好处

flink默认是可以前后发生的不同子任务放到同一个slot里边,即前后子任务共享同一个资源.因为他们在用一个共享组里边

这样的好处是1.一个slot里边可以保存整个作业运行的管道(pipeline).如果没有设计数据重分区的话,数据在一个pipeline全部完成所有操作.就不会有数据跨slot,taskManager间传输,即减少了IO.–效率提升

2.假如某个slot挂了,只想当于减少了并行度,别的slot仍然可以完成任务.–健壮性提升

如下图所示.这种没有设置共享组,所有算子在同一个default共享组里边

Snipaste_2022-02-17_22-47-29.png

但是我们可以通过设置共享组,使前后发生的任务不在同一个slot中. 因为flink只允许同一个共享组中的任务在同一个slot中.不同共享组的任务不能在同一个slot中.

如下图所示:

Snipaste_2022-02-17_23-16-29.png

共享组代码:

 

执行计划如下:占用5个slot 1+2+2

Snipaste_2022-02-18_00-04-42.png

5.5 并行任务Slot个数计算

怎么实现并行运算?

不同的任务分配到不同的线程(每个线程跑在slot上)上执行,从而实现并行计算.

并行任务:需要占用多少slot?

答:每个共享组的最大slot个数相加. 如果没有设置共享组,则所有算子在同一个default共享组中.(即算子最大并行度)

要是多个流呢?slot个数怎么算呢?

答:一个slot可以读取多个流数据.相当于多流占用同一个slot.一个线程处理A流中数据,空闲了也可以处理C流中数据.

如下图所示:C流箭头----->并不向下游广播,而是表示C中数据可以发往下游D中任意一个.

Snipaste_2022-02-18_00-23-52.png

6.1 执行图

Snipaste_2022-02-18_01-45-09.png

 

6.2 Operator Chains(任务链)

6.2.0 算子间数据传输数据的形式
 
6.2.1任务链简介

同一个共享组、相同并行度one-to-one 操作,Flink 这样相连的算子链接在一起形成一个 task,原来的算子成为里面的 subtask

•同一个共享组、并行度相同、并且是 one-to-one 操作,三个条件缺一不可

6.2.2任务链的好处
 
6.2.3 断开任务链
 
6.2.4 计算job中的任务

一个流处理程序,到底包含多少个任务?

在StreamGraph中每个算子是一个任务,此时并没有合并.

client会对其按照(Operator Chains)任务链规则进行合并得到JobGraph(如下图所示).

本文地址:http://www.tpjde.com/quote/1215.html    推平第 http://www.tpjde.com/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关行业动态
推荐行业动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2023001713号