Spark源码阅读笔记一——part of core
内部accumulator通过心跳报告给drivertask运行时可以累加accumulator,但是不能读取value,value只能在driver获取spark内部用一个weakhashmap保存accumulator,便于gc的清理 CacheManagerspark的类用于负责传递RDD的分区内容给BlockManager,并保证一个节点不会载入一个rdd的两份拷贝,这个通过一个hashset实现,已载入的rdd会将id保存到set中获取和计算rdd时,先判断是否已经计算,如果没有再从blockmanager获取block然后计算结果。除非是本地模式,不然rdd的计算结果都会缓存如果rdd不需要在内存中缓存,则直接将计算结果通过iterator直接传给blockmanager在rdd需要缓存时,我们必须小心不能在内存中一次性展开全部的partition,否则如果jvm没有足够的空间给这个单个的partition可能会引发OOM异常。取而代之的是,我们展开这些value,小心的、可能的放弃并丢掉这个partition到磁盘如果合适。如果空间足够就全部缓存到内存中,否则如果使用磁盘...

