尚硅谷2021最新Java版Flink(武老师清华硕士,原IBM-CDL负责人)

Flink的特点:
- 事件驱动
- 基于流的世界观:有界流和无界流
- 分层API
- 其他特点

任务提交流程:

YARN任务提交流程:

执行图:

由 Flink 程序直接映射成的数据流图是 StreamGraph,也被称为逻辑流图,因为
它们表示的是计算逻辑的高级视图。为了执行一个流处理程序,Flink 需要将逻辑流
图转换为物理数据流图(也叫执行图),详细说明程序的执行方式。
Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph ->
物理执行图。
StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用
来表示程序的拓扑结构。
JobGraph:StreamGraph 经过优化后生成了 JobGraph,提交给 JobManager 的
数据结构。主要的优化为,将多个符合条件的节点 chain 在一起作为一个节点,这
样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。
ExecutionGraph : JobManager 根 据 JobGraph 生 成 ExecutionGraph 。
ExecutionGraph 是 JobGraph 的并行化版本,是调度层最核心的数据结构。
物理执行图:JobManager 根据 ExecutionGraph 对 Job 进行调度后,在各个
TaskManager 上部署 Task 后形成的“图”,并不是一个具体的数据结构。