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