RDD被视为由不同的数据块组成,对于RDD的存取是以数据块为单位的,本质上分区(partition)和数据块(block)是等价的,只是看待的角度不同。
数据块
Spark存储管理模块中所管理的几种主要数据块
RDD数据块:用来标识所缓存的RDD数据
Shuffle数据块:用来标识持久化的Shuffle数据
广播变量数据块:用来标识所存储的广播变量数据
任务返回结果数据块:用来标识存储在存储管理模块内部的任务返回结果
通常情况下任务返回结果随任务一起通过Akka返回到Driver端,但是当任务返回结果很大时,会引起Akka帧溢出,这时的另一种方案是将返回结果以块的形式放入存储管理模块,然后在Driver端获取该数据块即可,因为存储管理模块内部数据块的传输是通过Socket连接的,因此就不会出现Akka帧溢出了。
流式数据块:只用在Spark Streaming中,用来表示所接收到的流式数据块。