1. 概述
BlockManager用来实际管理数据在内存在硬盘上的分布. 最小的管理单位是BlockId, 每个RDD本质上维护了一个array的BlockId, 每个ID都是一个指针, 指向某个Executor上的一片内存或者硬盘.
BlockManger向下操作着某一种Store作为Block的句柄, 像MemoryStore, DiskStore. 对应的, 通过MemoryWriter, DiskWriter写入数据.
写好了的Block信息会汇总到Driver端的BlockManagerMaster. 整体非常类似HDFS的结构.
![](https://img.haomeiwen.com/i13676247/4b099f2b73fd1664.png)
TODO: BlockManager里的Store, 写入过程. 写到这里的时候感觉需要一个整体的流程图来解释spark的各个组件的协作关系. 在流程图没有绘制完之前, 这一块先不写了.
TODO: DAGScheduler->TaskScheduler->TaskMemoryManager->BlockManager->MemoryStore->MemoryWriter这条线的详解.
网友评论