Spark BlockManager

BlockManager:spark底層負責數據管理的組件。

每一個節點上都有BlockManager,而Driver有BlockManagerMaster(Driver有DAGScheduler,DAGScheduler有BlockManagerMaster,BlockManagerMaster內有BlockManagerInfo,BlockManagerInfo內有BlockStatus),BlockManagerMaster負責對各個節點上的BlockManagerMaster內部管理的數據進行維護,如Block的增刪改操作,都會在這裏維護元數據的變更。每個BlockManager創建完之後,會向BlockManagerMaster進行註冊,此時BlockManagerMaster會爲其創建對應的BlockManagerInfo。

 

BlockManagerMaster包含四個主要的組件:DiskStore、MemoryStore、BlockManagerWorker、ConnectionManager

1.DiskStore負責對磁盤中的數據進行讀寫;

2.MemoryStore負責對內存中的數據進行讀寫;

3.ConnectionManager負責建立遠程BlockManager的連接;

4.BlockManagerWorker負責對遠程其它節點的BlockManager進行讀寫。

可將DiskStore、MemoryStore看爲本地的操作,而將ConnectionManager、BlockManagerWorker作爲遠程操作。

從BlockManager讀取數據時,如果本地有數據,就使用DiskStore或MemoryStore從本地的磁盤或內存中讀取所需的數據,如果本地沒數據時,通過ConnectionManager連接其它BlockManager,使用BlockManagerWorker從遠程的BlockManager中進行數據讀取。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章