BlockManager分析
BlockManager 是一个嵌入在 spark 中的 key-value型分布式存储系统。它分为master和slave。
Driver 端 是 BlockManager master;Executor 节点 是 BlockManager slave;
BlockManager 在一个 spark 应用中作为一个本地缓存运行在所有的节点上。BlockManager 对本地和远程提供一致的 get 和set 数据块接口,BlockManager 本身使用不同的存储方式来存储这些数据, 包括 memory(内存), disk(磁盘), off-heap(堆外)。
存储的block信息是什么?
在spark的存储内存中存取数据的最小单位是block,所有的操作都是以block为单位进行的。
如当在spark上执行cache时,会将RDD数据持久到 存储模块中,这时存进去的就是block。
流程说明:
1)在 Application 启动的时候会在 spark-env.sh 中注册 BlockMangerMaster。
BlockManagerMaster:对整个集群的 Block 数据进行管理;
2)每个启动一个 Executor 都会实例化 BlockManagerSlave 并通过远程通信的方式注册给