尚硅谷2021最新Java版Flink(武老師清華碩士,原IBM-CDL負(fù)責(zé)人)

Flink的特點:
- 事件驅(qū)動
- 基于流的世界觀:有界流和無界流
- 分層API
- 其他特點

任務(wù)提交流程:

YARN任務(wù)提交流程:

執(zhí)行圖:

由 Flink 程序直接映射成的數(shù)據(jù)流圖是 StreamGraph,也被稱為邏輯流圖,因為
它們表示的是計算邏輯的高級視圖。為了執(zhí)行一個流處理程序,F(xiàn)link 需要將邏輯流
圖轉(zhuǎn)換為物理數(shù)據(jù)流圖(也叫執(zhí)行圖),詳細(xì)說明程序的執(zhí)行方式。
Flink 中的執(zhí)行圖可以分成四層:StreamGraph -> JobGraph -> ExecutionGraph ->
物理執(zhí)行圖。
StreamGraph:是根據(jù)用戶通過 Stream API 編寫的代碼生成的最初的圖。用
來表示程序的拓?fù)浣Y(jié)構(gòu)。
JobGraph:StreamGraph 經(jīng)過優(yōu)化后生成了 JobGraph,提交給 JobManager 的
數(shù)據(jù)結(jié)構(gòu)。主要的優(yōu)化為,將多個符合條件的節(jié)點 chain 在一起作為一個節(jié)點,這
樣可以減少數(shù)據(jù)在節(jié)點之間流動所需要的序列化/反序列化/傳輸消耗。
ExecutionGraph : JobManager 根 據(jù) JobGraph 生 成 ExecutionGraph 。
ExecutionGraph 是 JobGraph 的并行化版本,是調(diào)度層最核心的數(shù)據(jù)結(jié)構(gòu)。
物理執(zhí)行圖:JobManager 根據(jù) ExecutionGraph 對 Job 進行調(diào)度后,在各個
TaskManager 上部署 Task 后形成的“圖”,并不是一個具體的數(shù)據(jù)結(jié)構(gòu)。