Spark本身并不存储数据,这里所说的存储系统是指计算过程中,管理内存中数据(如读到内存的源数据、缓存的RDD数据、广播数据)、Shuffle文件数据的功能模块。如果没有存储管理系统,计算是无法完成的。
存储系统的主要由以下组件构成:
- BlockManagerMaster
- BlockManager
- MemoryStore
- DiskStore
- DiskStoreManager
- BlockInfoManager
- BlockManagerMasterEndpoint
- BlockManagerSlaveEndpoint
一,存储系统的用途
1,分发任务到Executor后读取分区数据到内存
2,Driver广播数据到Executor
3,ShuffleWrite-Executor写Shuffle数据
4,ShuffleRead-Executor读取Shuffle数据
5,RDD缓存到内存或者磁盘,多副本时复制