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服务。

相关文章
相关标签/搜索