阿里美女面试官问我:Flink资源管理有了解吗
三連后觀看,養成好習慣!
點個關注吧,球球啦!
Flink Runtime運行時架構:https://blog.csdn.net/Mr_kidBK/article/details/105709629
前言
??????Apache Flink 一個高性能的分布式數據處理引擎,它用于對無界和有界數據流進行有狀態計算,它被設計在所有常見的集群環境中運行,以內存執行速度和任意規模來執行計算。
??????相信過多的我不需要做什么介紹,本系列將以flink整體架構,資源管理與作業調度,錯誤恢復三個層面詳細的講述Flink Runtime運行時架構核心機制。
正文
書接上回。。。
好了我們繼續吧
稍作歇息之后,美女面試官又回到了座位上,期間似乎補了個妝,還換了身衣服?!
這。這誰頂得住。。。
Flink資源管理有了解嗎,流程簡單描述下
可以,不愧是選中我的面試官。
??????之前我們說過,Flink中也有他自己的資源資源管理器RM,具體說的話資源管理就是RM中一個叫SlotManager的一個組件,他負責維護管理Slot狀態和分配空閑的Slot資源。
??????JobManager需要對整個作業負責,因此首先是由它發起向RM索要slot資源的請求,而在TM啟動的時候,他會主動的向RM報告自己的Slot信息,包括有多少個slot,每個slot的資源大小(社區版無)。當RM收到JM的申請時,會計算集群空閑資源是否滿足需求,如果達到需求,RM會向被分配的TM發送通知“你的xxSlot被征用了,請去xxx地和JM接頭!”
??????然后,TM收到通知后,會找到JM,告訴他“你的申請成功了,這些Slot現在暫時歸你了!”;JM收到Slot后,會把Slot信息緩存在一個SlotPool中,在收到足夠的Slot后,JM會把task提交到對應的Slot上,也就是提交任務執行。
??????當作業結束,無論是異常結束還是正常結束,TM都會向RM發送釋放對應Slot的請求。
(結合上圖更容易理解哦!)
上篇文章你也說過,在生成JobGraph時Flink會把能分配在一起的task分到一起(瘋狂暗示)
Operator Chains(算子鏈)這個概念你了解嗎?
??????為了更高效地分布式執行,Flink會盡可能地將operator的subtask鏈接(chain)在一起形成task,這些task會在相同的slot中被執行,它能減少線程之間的切換,減少消息的序列化/反序列化,減少數據在緩沖區的交換,減少了延遲的同時提高整體的吞吐量。
什么情況下才會把Operator chain在一起形成算子鏈?
比如說我現在有這樣一個job,并行度為3
首先,相同的task是不能chain的,如A1,A2,A3。
兩個task之間分區方式是forward(上下游算子并行度一樣),并且他們在一個slot group 中
下游節點的入度為1 (也就是說下游節點沒有來自其他節點的輸入)
下一章:checkpoint容錯機制與錯誤恢復
點關注,不迷路!
你知道的越多,你的頭就會越禿
點個贊再走,球球啦!
原創不易,白嫖不好,各位的支持和認可,就是我創作的最大動力,我們下篇文章見!
本博客僅發布于CSDN—一個帥到不能再帥的人 Mr_kidBK。轉載請標明出處。
https://blog.csdn.net/Mr_kidBK
點贊!收藏!轉發!!!么么噠!
點贊!收藏!轉發!!!么么噠!
點贊!收藏!轉發!!!么么噠!
點贊!收藏!轉發!!!么么噠!
點贊!收藏!轉發!!!么么噠!
————————————————
總結
以上是生活随笔為你收集整理的阿里美女面试官问我:Flink资源管理有了解吗的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NOIP201307货车运输
- 下一篇: java 转换url中文参数