Spark | BlockManager

BlockManager是整个Spark存储模块中的核心,它不仅提供存储模块处理各种存储方式的读写方法,而且还为Shuffle模块提供数据处理等操作接口。

BlockManager存在于Driver端和每个Executor中:Driver端的BlockManager  保存了数据的元数据信息;而在Executor中的BlockManager则根据接受到的消息类型进行操作:

当Executor的BlockManager接收到读取数据操作时,根据数据块所在的节点是否本地而使用BlockManager的不同方法进行处理;如果本地则直接调用MemoryStore和DiskStore中的方法getValue等进行读取;如果远程则调用BlockTransferService服务来获取远程节点上的数据。

当Executor的BlockManager接受到写入数据操作时,如果不需要创建副本,则调用BlockStore的接口方法进行处理(这点与数据读取不同,数据读取是直接调用不同存储的读取方法),根据数据写入的存储类型,决定调用对应的写入方法。

 

实例学习:

https://blog.csdn.net/jiaojiao521765146514/article/details/86065061

 

https://blog.csdn.net/LINBE_blazers/article/details/89408371

发布了44 篇原创文章 · 获赞 11 · 访问量 5449

猜你喜欢

转载自blog.csdn.net/Sampson_Hugo/article/details/103387920