p1.昨晚为Lucid Dreams(Halsey cover)而心碎可以永远相信Halsey的翻唱!!!p2.So when it sinks you stand in it, I guess this is my Titanic, With no James Cameron to direct this draft of it, Just my. (MGK太帅了啊啊啊啊啊啊啊啊[抓狂][抓狂])
(是谁看喷气哥的reaction到凌晨三点半[思考])
(是谁看喷气哥的reaction到凌晨三点半[思考])
Flink任务调度原理之逻辑数据流与执行图
Flink程序都是由三部分组成的: Source (Input)、Transformation (Processing)和Sink(Output)。【图 1】
Source负责读取数据源,Transformation利用各种算子进行处理加工,Sink负责输出。
在运行时,Flink上运行的程序会被映射成“逻辑数据流”(dataflows),它包含了这三部分。每一个dataflow以一个或多个sources开始以一个或多个sinks结束。dataflow类似于任意的有向无环图(DAG)。在大部分情况下,程序中的转换运算(transformations)跟dataflow中的算子(operator)是一一对应的关系,但有时候,一个transformation可能对应多个operator。【图 2】
Flink程序直接映射成的数据流图StreamGraph,也被称为逻辑流图,因为它们表示的是计算逻辑的高级视图。为了执行一个流处理程序,Flink需要将逻辑流图转换为物理数据流图(也叫执行图),详细说明程序的执行方式。【图 3】
Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。
1、StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。
2、JobGraph:StreamGraph经过优化后生成了 JobGraph,提交给 JobManager 的数据结构。主要的优化为,将多个符合条件的节点 chain 在一起作为一个节点,这样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。
3、ExecutionGraph:JobManager 根据 JobGraph 生成ExecutionGraph。ExecutionGraph是JobGraph的并行化版本,是调度层最核心的数据结构。
4、物理执行图:JobManager 根据 ExecutionGraph 对 Job 进行调度后,在各个TaskManager 上部署 Task 后形成的“图”,并不是一个具体的数据结构。
Flink程序都是由三部分组成的: Source (Input)、Transformation (Processing)和Sink(Output)。【图 1】
Source负责读取数据源,Transformation利用各种算子进行处理加工,Sink负责输出。
在运行时,Flink上运行的程序会被映射成“逻辑数据流”(dataflows),它包含了这三部分。每一个dataflow以一个或多个sources开始以一个或多个sinks结束。dataflow类似于任意的有向无环图(DAG)。在大部分情况下,程序中的转换运算(transformations)跟dataflow中的算子(operator)是一一对应的关系,但有时候,一个transformation可能对应多个operator。【图 2】
Flink程序直接映射成的数据流图StreamGraph,也被称为逻辑流图,因为它们表示的是计算逻辑的高级视图。为了执行一个流处理程序,Flink需要将逻辑流图转换为物理数据流图(也叫执行图),详细说明程序的执行方式。【图 3】
Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。
1、StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。
2、JobGraph:StreamGraph经过优化后生成了 JobGraph,提交给 JobManager 的数据结构。主要的优化为,将多个符合条件的节点 chain 在一起作为一个节点,这样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。
3、ExecutionGraph:JobManager 根据 JobGraph 生成ExecutionGraph。ExecutionGraph是JobGraph的并行化版本,是调度层最核心的数据结构。
4、物理执行图:JobManager 根据 ExecutionGraph 对 Job 进行调度后,在各个TaskManager 上部署 Task 后形成的“图”,并不是一个具体的数据结构。
I strove with none,
for none was worth my strife;
Nature I loved, and next to Nature, Art;
I warm’d both hands before the fire of Life;
It sinks
I am ready to depart.
我和谁都不争,
和谁争我都不屑;
我爱大自然,其次就是艺术;
我双手烤着生命之火取暖;
火萎了,我也准备走了。 https://t.cn/RJq0nK3
for none was worth my strife;
Nature I loved, and next to Nature, Art;
I warm’d both hands before the fire of Life;
It sinks
I am ready to depart.
我和谁都不争,
和谁争我都不屑;
我爱大自然,其次就是艺术;
我双手烤着生命之火取暖;
火萎了,我也准备走了。 https://t.cn/RJq0nK3
✋热门推荐