5.Flink原理初探\角色分工\执行流程图生成\DataFlow,Operator,Partition,Parallelism,SubTask\OperatorChain和Task\任务槽\槽共享

本文来自:Flink1.12-2021黑马程序员贺岁视频 的学习笔记

5.Flink原理初探
5.1.角色分工
5.2.执行流程
5.3.DataFlow
5.3.1.DataFlow、Operator、Partition、Parallelism、SubTask
5.3.2.OperatorChain和Task
5.3.3.TaskSlot和TaskSlotSharing
5.3.3.1.任务槽(TaskSlot)
5.3.3.2.槽共享(Slot Sharing)
5.4.执行流程图生成

5.Flink原理初探

5.1.角色分工

在这里插入图片描述

5.2.执行流程

在这里插入图片描述

5.3.DataFlow

5.3.1.DataFlow、Operator、Partition、Parallelism、SubTask

在这里插入图片描述

A: Dataflow: Flink程序在执行的时候会被映射成一个数据流模型。
B: Operator: 数据流模型中的每一个操作被称为Operator, Operator分为:Source / Transform / Sink
C: Partition: 数据流模型是分布式的和并行的,执行中会形成1~n个分区。
D: Subtask: 多个分区任务可以并行,每一个都是独立运行在一个线程中的,也就是一个Subtask子任务
E: Parallelism: 并行度,就是可以同时真正执行的子任务数/分区数

1.One to One模式:
两个operator用此模式传递的时候,会保持数据的分区数和数据的排序;如上图中的Source1到Map1,它就保留的Source的分区特征,以及分区元素处理的有序性。—类似于Spark中的窄依赖。

2.Redistributing模式:
这种模式会改变数据的分区数;每个一个operator subtask会根据选择transformation把数据发送到不同的目标subtasks,比如keyBy()会通过hashcode重新分配,broadcast()和rebalance()方法会随机重新新分区。–类似于Spark中的宽依赖。

5.3.2.OperatorChain和Task

在这里插入图片描述

5.3.3.TaskSlot和TaskSlotSharing

5.3.3.1.任务槽(TaskSlot)

在这里插入图片描述

5.3.3.2.槽共享(Slot Sharing)

TaskSlot跑完一些线程任务后,可以重复利用继续跑后面的线程任务。
在这里插入图片描述

5.4.执行流程图生成

在这里插入图片描述

StreamGraph: 最初的程序执行逻辑流程,也就是算子之间的前后顺序–在Client上生成。

JobGraph: 将OneToOne的Operator合并为OperatorChain – 在Client上生成。

ExecutionGraph: 将JobGraph根据代码中设置的并行度和请求的资源进行并行化规划!—在JobManager上生成。

物理执行图:将ExecutionGraph的并行计划,落实到具体的TaskManager上,将具体的SubTask落实到具体的TaskSloth内进行运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

涂作权的博客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值