Spark中的數據存儲

Spark中的數據存儲主要由BlockManager、ShuffleManager、DiskStore、MemoryStore等組件組成,固然還涉及到具體的主從節點之間的元數據信息交換。數組

BlockManager在存儲數據的時候主要經過putBytes、putIterator等方法實現,前者是寫入字節數組,後者是寫入迭代器內容(此時循環迭代器依次寫入)。寫入的時候根據StorageLevel先決定是否寫入MemoryStore,若是不成功再決定是否寫入DiskStore。讀取過程相反。ast

DiskBlockManager處理邏輯Block和物理File之間的關係,從BlockId到物理File的映射關係等。循環

BlockManager經過Slave和Master的節點概念,在Master統一維護彙總Block元數據。迭代器

BlockManager也同時管理Shuffle數據的存儲和Broadcast數據的存儲。方法

Spark的存儲管理主要是這三章內容組成,Shuffle、BlockManager等概念。數據