博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark源码之BlockManager
阅读量:5877 次
发布时间:2019-06-19

本文共 737 字,大约阅读时间需要 2 分钟。

hot3.png

BlockManager是分布式块存储管理。核心机制是每个节点存储自己的内存空间和磁盘空间。BlockManagerMaster负责与其他节点的BlockManager通信并负责块在节点间的复制。BlockInfoManager负责管理块的元数据并提供读写锁的功能。当从本地的BlockManager获取不到块时,从远程节点Fetch这个块。

Broadcast也是运用了BlockManager来存储广播变量,广播变量不需要通过锁的机制,参见源码这里不单独指出。

四大BlockManager组件:

名称

说明

BlockManagerMaster

BlockManager的主节点,所有的Block请求消息都是从这里发出。

BlockManagerMasterEndPoint

主节点的BlockManager的Endpoint,负责解释slave发送来的块消息请求

BlockManagerSlaveEndPoint

负责slave节点的块请求消息处理,处理master发来的Block消息。master保存注册过来的多个slaveEndpoint。所有的BlockInfo更新都要通知给master。

BlockManager

在每个节点上运行Blockmanager。

通过BlockManagerMaster来实现块的复制。

通过BlockInfoManager读写块的元数据;通过MemoryStore和DiskStore实现块数据的存储读写。

BlockInfoManager

管理BlockInfo数组,加上读写锁的控制。主要为BlockManager服务。

 

 

转载于:https://my.oschina.net/u/778683/blog/1831146

你可能感兴趣的文章
为什么现在都用面向对象开发,为什么现在都用分层开发结构?
查看>>
【离散数学】 SDUT OJ 偏序关系
查看>>
写给学弟学妹的产品入门建议(持续更新)
查看>>
view视图总结
查看>>
C# 知识点随手学习网站推荐
查看>>
深入剖析tomcat之一个简单的web服务器
查看>>
记一次数据库查询语句的优化
查看>>
poj2365
查看>>
SQL学习笔记三select语句的各种形式
查看>>
Android cts all pass 全攻略
查看>>
数学 SCU 4436 Easy Math
查看>>
Django form组件
查看>>
1006 等差数列
查看>>
oracle删除表数据的两种的方式
查看>>
Eval函数知识总结
查看>>
30.angularJS第一个实例
查看>>
学习进度条
查看>>
[HNOI2008]Cards
查看>>
hibernate总结
查看>>
js----深拷贝,浅拷贝
查看>>