5.Flink原理初探角色分工执行流程图生成DataFlow,Operator,Partition,Parallelism,SubTaskOperatorChain和Task任务槽槽共享
Posted to.to
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.Flink原理初探角色分工执行流程图生成DataFlow,Operator,Partition,Parallelism,SubTaskOperatorChain和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内进行运行。
以上是关于5.Flink原理初探角色分工执行流程图生成DataFlow,Operator,Partition,Parallelism,SubTaskOperatorChain和Task任务槽槽共享的主要内容,如果未能解决你的问题,请参考以下文章
互联网公司的“敏捷开发”流程是怎么样的,每个职位的角色和分工是什么?