flink 執行時的元件
任務管理器taskmanager
flink的工作程序。通常在flink中會有多個taskmanager執行,每乙個taskmanager都包含了一定數量的插槽(slots)。插槽的數量限制了taskmanager能夠執行的任務數量。
啟動之後,taskmanager會向資源管理器註冊它的插槽;收到資源管理器指令後,taskmanager就會將乙個或多個插槽提供給jobmanager呼叫。jonbmanager就可以向插槽分配任務來執行。
在執行過程中,乙個taskmanager可以跟其他執行同一應用程式的taskmanager交換資料。
資源管理器 resourcemanager
主要負責管理務管理器的插槽slot,taskmanager插槽是flink中定義的處理資源單元。
flink為不同的環境和資源管理工具提供了不同資源管理器,如yarn、mesos、k8s,以及standalone部署。
當jobmanager申請插槽資源時,resourcemanager會將有空閒插槽的taskmanager分配給jobmanager。如果resourcemanager沒有足夠的插槽滿足jobmanager請求,它還可以向資源提供平台發起會話,以提供啟動taskmanager程序的容器。
分發器 dispatcher
可以跨作業執行,它為應用提供了rest介面。
當乙個應用被提交執行時,分發器就會啟動並將應用移交給jobmanager。
dispatcher也會
啟動乙個 web ui 用來方便地展示和監控作業執行的資訊。
dispatcher在架構中可能並不是必需的,這取決於應用提交執行的方式。
standalone 模式 flink 任務提交流程
任務提交流程(yarn)
任務排程原理
taskmanager和slots
taskmanager可以看做乙個程序 task on slot 可以看作乙個執行緒
每乙個執行緒執行在固定的計算資源上,這個資源就是slot
slot之間記憶體不共享 cpu共享
所以slot數量配成cpu核心數 可以更好的提高cpu利用率
並行:資料並行:同乙個任務,不同的並行子任務,同時處理不同的資料
任務並行:同一時間,不同的slot在執行不同的任務
資料傳輸形式
乙個程式中,不同的運算元可能有不同的並行度
運算元之間傳輸資料的形式可以是one-to-one(forwarding)的模式亦可以是redistributing的模式,具體是哪一種,取決於運算元的種類
one-to-one:stream維護著分割槽以及元素的順序。(如source 和 map 運算元之間) 這意味著map的運算元的子任務看到元素個數以及順序跟source運算元的子任務生產的元素的個數,順序相同。map,filter,flatmap等運算元都是one-to-one的對應關係
redistributing:stream的分割槽會發生改變,每乙個運算元的子任務 依據所選擇的 transformation傳送資料到不同的目標任務。 如 :keyby運算元會基於hashcode重分割槽,而brodcast和reblance會隨機重新分割槽,這些運算元都會引起redistribute過程,而redistribute過程就類似於spark中的shuffle過程。
和spark的窄依賴和寬依賴類似 窄依賴且 相同並行度的 的可以合併在一起執行 寬依賴的 不行
這個是flink 的任務鏈優化技術
taskmanager和slot數量決定了 並行處理的最大能力
但是不一定程式執行時一定都能用到。程式執行時的並行度才是用到的能力。
struts2 架構剖析
一 xwork2 struts2的基礎 struts2框架有兩部分組成,xwork和struts2。xwork是乙個命令模式框架,他是struts2的基礎。xwork提供很多核心功能ioc 控制反轉 容器,強大的表示式語言 資料型別轉換,驗證和可插入的配置。xwork框架的核心包括action re...
flink學習 flink架構
flink結構 graph 2個併發度 source為1個併發度 的sockettextstreamwordcount四層執行圖的演變過程 jobgraph streamgraph經過優化後生成了 jobgraph,提交給 jobmanager 的資料結構。executiongraph jobman...
架構學習一 架構概要總覽
架構學習一 架構概要總覽1 架構的主要複雜點 高效能 高可用 可擴充套件 低成本 安全 規模 2 架構設計的目的 根據實際情況,選擇合適的技術方案。一味的套用大公司或者高大上的技術方案是不成熟,大概率會造成異常技術災難。架構設計首先要找到系統的痛點,針對此來進行設計。3 架構設計的主要流程 1 找到...