​RDD Persistence​

StorageLevel

describe

NONE

RDD不做持久化

DISK_ONLY

RDD分区仅持久化在磁盘

DISK_ONLY_2

_2,即将每个分区备份到2个集群节点,其他同上

MEMORY_ONLY

默认持久化策略. 将RDD作为JAVA对象反序列化后持久化到JVM虚拟机内存中,如果内存不能容纳所有的RDD分区,则有些RDD分区数据不能持久化。即不能被命中(cached),当这些RDD分区再次被使用时,需要重新计算

MEMORY_ONLY_2

_2,即将每个分区备份到2个集群节点,其他同上

MEMORY_ONLY_SER

与 MEMORY_ONLY 的唯一区别:将RDD作为JAVA对象(每个分区占一个字节数组)序列化后持久化到JVM虚拟机内存中。优缺点: 减少内存开销,但是需要反序列化,消耗CPU

MEMORY_ONLY_SER_2

_2,即将每个分区备份到2个集群节点,其他同上

MEMORY_AND_DISK

将RDD作为JAVA对象反序列化后进行持久化。如果内存不能全部容纳RDD数据,则剩余部分会被持久化到磁盘。后续从内存和磁盘上按需读取

MEMORY_AND_DISK_2

_2,即将每个分区备份到2个集群节点,其他同上

MEMORY_AND_DISK_SER

与 MEMORY_ONLY_SER 类似,内存容纳不下的RDD分区数据持久化至磁盘,避免,避免再次需要的时候重新计算

MEMORY_AND_DISK_SER_2

_2,即将每个分区备份到2个集群节点,其他同上

OFF_HEAP OFF_HEAP

参数默认持久化到分布式内存文件系统。相比MEMORY_ONLY_SER,OFF_HEAP减少垃圾回收的开销,使得executors更小及共享内存池。这在高并发环境下有吸引力。此外,由于RDD驻留在Tachyon中,executor的崩溃不会造成数据的丢失,这种模式下,Tachyon中的内存是可废弃的,因此,Tachyon并不会尝试去重建从内存中清除的块。


References