您当前的位置: 首页 > 

段智华

暂无认证

  • 0浏览

    0关注

    1232博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

第40课: CacheManager彻底解密:CacheManager运行原理流程图和源码详解

段智华 发布时间:2017-06-11 21:53:02 ,浏览量:0

第40课:  CacheManager彻底解密:CacheManager运行原理流程图和源码详解

CacheManager管理是缓存,而缓存可以是基于内存的缓存,也可以是基于磁盘的缓存。CacheManager需要通过BlockManager来操作数据。

         Task发生计算的时候要调用RDD的compute进行计算。我们看一下MapPartitionsRDD的compute方法:

MapPartitionsRDD的源码:

1.          private[spark] class MapPartitionsRDD[U:ClassTag, T: ClassTag](

2.             var prev: RDD[T],

3.             f: (TaskContext, Int, Iterator[T]) =>Iterator[U],  // (TaskContext, partitionindex, iterator)

4.             preservesPartitioning: Boolean = false)

5.           extends RDD[U](prev) {

6.          

7.           override val partitioner = if(preservesPartitioning) firstParent[T].partitioner else None

8.          

9.           override def getPartitions: Array[Partition]= firstParent[T].partitions

10.       

11.        override def compute(split: Partition,context: TaskConte

关注
打赏
1659361485
查看更多评论
立即登录/注册

微信扫码登录

0.0538s