CacheManager持久化原理
CacheManager的主要功能就是在进行RDD计算的时候,会先从持久化的RDD中读取当前计算RDD需要的数据。
下面是RDD在进行计算的时候,读取数据的流程:
RDD在计算的时候,首先会判断是否被持久化过,如果没有持久化,那么会用父RDD的数据来执行我们定义的算子计算新的RDD的partition的数据;假设持久化了,那么使用CacheManager直接读取持久化的数据;在读取的时候,使用BlockManager尝试从本地读取数据,或者远程拉取数据;假如一直都读取不到,那么还会读取之前checkpoint的数据,假如checkpoint的数据也没有读取到,那么就需要重新计算。在重新计算的时候,会将之前丢失的数据接着进行缓存,依据持久化级别进行缓存,内存或者磁盘等。