San*_*dip 19 caching apache-spark
spark中的memory_only和memory_and_disk缓存级别的行为有何不同?
小智 36
文件说---
存储级别
含义
MEMORY_ONLY
将RDD存储为JVM中的反序列化Java对象.如果RDD不适合内存,则某些分区将不会被缓存,并且每次需要时都会重新计算.这是默认级别.
MEMORY_AND_DISK
将RDD存储为JVM中的反序列化Java对象.如果RDD不适合内存,请存储不适合磁盘的分区,并在需要时从那里读取它们.
MEMORY_ONLY_SER
将RDD存储为序列化Java对象(每个分区一个字节数组).这通常比反序列化对象更节省空间,特别是在使用快速序列化器时,但读取CPU密集程度更高.
MEMORY_AND_DISK_SER
与MEMORY_ONLY_SER类似,但将不适合内存的分区溢出到磁盘,而不是每次需要时动态重新计算它们.
DISK_ONLY
仅将RDD分区存储在磁盘上.
MEMORY_ONLY_2,MEMORY_AND_DISK_2等
与上面的级别相同,但复制两个群集节点上的每个分区.
OFF_HEAP(实验性)
在Tachyon中以序列化格式存储RDD.与MEMORY_ONLY_SER相比,OFF_HEAP减少了垃圾收集开销,并允许执行程序更小并共享内存池,使其在具有大堆或多个并发应用程序的环境中具有吸引力.此外,由于RDD驻留在Tachyon中,执行程序的崩溃不会导致丢失内存缓存.在这种模式下,Tachyon中的内存是可丢弃的.因此,Tachyon不会尝试重建一个从记忆中驱逐的块.
这仅意味着内存,spark将尝试始终将分区保留在内存中.如果某些分区无法保留在内存中,或者由于节点丢失,某些分区将从RAM中删除,则spark将使用沿袭信息重新计算.在内存和磁盘级别,spark将始终保持计算和缓存分区.它将尝试保留在RAM中,但如果它不适合,则分区将溢出到磁盘.
Jul*_*ina 33
如文档中所述,效率方面的持久性级别:
Level Space used CPU time In memory On disk Serialized ------------------------------------------------------------------------- MEMORY_ONLY High Low Y N N MEMORY_ONLY_SER Low High Y N Y MEMORY_AND_DISK High Medium Some Some Some MEMORY_AND_DISK_SER Low High Some Some Y DISK_ONLY Low High N Y Y
MEMORY_AND_DISK
MEMORY_AND_DISK_SER
如果有太多数据要适合内存,则溢出到磁盘.
归档时间: |
|
查看次数: |
18634 次 |
最近记录: |