Spark源碼之BlockManager

BlockManager是分佈式塊存儲管理。核心機制是每一個節點存儲本身的內存空間和磁盤空間。BlockManagerMaster負責與其餘節點的BlockManager通訊並負責塊在節點間的複製。BlockInfoManager負責管理塊的元數據並提供讀寫鎖的功能。當從本地的BlockManager獲取不到塊時,從遠程節點Fetch這個塊。數組

Broadcast也是運用了BlockManager來存儲廣播變量,廣播變量不須要經過鎖的機制,參見源碼這裏不單獨指出。分佈式

四大BlockManager組件:spa

名稱內存

說明ci

BlockManagerMaster源碼

BlockManager的主節點,全部的Block請求消息都是從這裏發出。table

BlockManagerMasterEndPointast

主節點的BlockManager的Endpoint,負責解釋slave發送來的塊消息請求變量

BlockManagerSlaveEndPoint請求

負責slave節點的塊請求消息處理,處理master發來的Block消息。master保存註冊過來的多個slaveEndpoint。全部的BlockInfo更新都要通知給master。

BlockManager

在每一個節點上運行Blockmanager。

經過BlockManagerMaster來實現塊的複製。

經過BlockInfoManager讀寫塊的元數據;經過MemoryStore和DiskStore實現塊數據的存儲讀寫。

BlockInfoManager

管理BlockInfo數組,加上讀寫鎖的控制。主要爲BlockManager服務。

相關文章
相關標籤/搜索