記錄一些圖檔留給自己将來複習回憶
Yarn-per-job啟動流程圖
PRC流程圖
Akka基于Actor的RPC通信系統,核心概念也是Message,它是基于協程的,性能好:基于scala的偏函數,易用性高,
但是它畢竟隻是RPC通信,無法适用大的package/stream的資料傳輸,是以更多使用場景還是Netty
任務排程
streamGraph:client内根據順序串聯算子,封裝流和邊。不是對資料做轉換的算子變成邊,比如keyBy變成hash StreamEdge
JobGraph: 優化多個操作鍊。多個StreamNode經過優化後可能會chain合并到一個JobVertex。并且多出頂點的中間資料集
ExecutionGraph:執行頂點根據并行度展開,中間結果集變成多個中間結果分區
排程器進行RPC通過網關開啟排程真正實體執行
記憶體管理
記憶體模型
JVM元空間:預設256mb
JVM執行開銷:預設總記憶體0.1比例
架構記憶體:TaskManager本身所占用的記憶體,不計入slot資源中。預設堆内堆外都是128mb
Task記憶體:堆外記憶體預設不開啟,堆内記憶體預設none
(由Flink記憶體扣除其他記憶體得到,也就是所有多出的記憶體都是屬于Task記憶體,Flink記憶體=總記憶體-JVM元空間和執行開銷)
網絡記憶體:網絡資料交換的對外記憶體。預設大小為Flink記憶體比例0.1/最小64mb/最大1G
管理記憶體:預設Flink記憶體比例0.4
記憶體資料結構-記憶體段
網絡傳輸的記憶體管理
傳輸資料:資料進入本地緩沖池,然後進入網絡緩沖池,通過網絡緩沖池進行資料的傳輸
接收資料:流程相反