Flink(4)運行時架構

Flink 運行時的組建

  • 作業管理器: JobManager
  • 任務管理器: TaskManager
  • 資源管理器:ResourceManager
  • 分發器:Dispacher

作業管理器(JobManager)

  • 控制一個應用程序執行的主進程,也就是說,每個應用程序都會被不同的JobManager所控制
  • jobManager 會先接受到要執行的應用程序,這個應用程序會包括:作業圖(JobGraph),邏輯數據圖(logical dataflow graph)和打包了所有的類庫和其他資源的JAR包。
  • JobManager 會向資源管理器請求執行任務必要的資源,也就是任務管理器上的插槽(slot),一旦他獲得足夠的資源,就會將執行圖分發到真正運行他們的TaskManager上,而運行過程中,jobManager會負責所需要的中央協調的操縱,比如說檢查點(checkpoints)協調。

任務管理器 (TaskManager)

  • Flink 的工作進程。通常在Flink中會有多個TaskManager 運行,每個TaskManager會包含一定數量的插槽(slots).插槽的數量限制了TaskManager能夠執行的數量。
  • 啟動后,TaskManager會向資源管理器注冊他的插槽,收到資源管理的指令后,TaskManager 就會將一個或者多個插槽提供給JobManager調用,JobManager就可以向插槽分配任務(tasks)來執行了。
  • 在執行中,一個taskManager 可以跟其他運行同一個應用程序的TaskManager 交換數據。

資源管理(ResourceManager)

  • 主要負責管理 ,任務管理器的插槽(slot),TaskManager插槽是Flink中定義的處理資源單元。
  • Flink 為不同的環境和資源管理工具提供了不同的資源管理器,比如 YARN,K8s,以及 Standalone部署。

分發起(Dispatcher)

  • 可以跨作業運行,他為應用提供了REST接口,
  • 當一個應用被提交執行的時候,他就會啟動并將應用移交給一個JobManager.
  • 他會啟動一個 Web UI,方便展示信息

任務提交流程

任務提交流程.png

任務提交流程 (Yarn)

任務提交流程(Yarn).png

任務提交原理

任務調度原理.png

并行度

一個特定算子的子任務的個數被稱為其并行度。一般情況下,
一個stream的并行度,可認為就是其所有算子中最大的并行度


并行度.png

TaskManager 和 Slots

  • Flink 中每個TaskManager 都是JVM進程,
    它可能會在獨立的線程上執行一個或多個子任務
  • 為了控制一個TaskManager 能接受多少個Task,TaskManager通過
    task slot 來進行控制(一個TaskManager 至少有一個slot)
    taskManager和slot.png

    TaskManager和slot(2).png

    設置 slot 共享組
.slotSharingGroup("red")

結果: 默認的共享組是"default",設置不同的共享組后,整個計算任務會 ,比之前會占多個slot

例如:


并行子任務的分配.png

flink 子任務的分配

flink子任務分配.png

flink子任務分配2.png

flink 的執行步驟圖

flink執行步驟圖.png

數據傳輸形式

一個程序中,不同的算子可能具有不同的并行度
算子之間的傳輸數據的形式可以是 one-to-one (forwarding)的模式
也可以是 redistributing的模式,具體是哪一種形式,取決于算子的種類

one-to-one :

stream維護著分區以及元素的順序(比如source 和map),著意味著map
算子的子任務生產的元素的個數以及順序跟source算子的子任務生產的元素的個數 ,順序相同。
map,fliter,flatMap 等算子都是 one-to-one的對應關系

redistributing:

stream的分區會發生改變。,每個算子的子任務依據所選擇的transformation
發送數據到不同的目標任務。例如,keyBy基于hashCode 重分區,而broadcast 和 rebalance
會隨機重新分區。這些算子都會引起redistribute過程,而redistribute過程
就類似于spark中的shuffle過程。

任務鏈

任務鏈0.png

任務鏈.png
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容