美文网首页Spark & Flink
Spark RDD持久化级别

Spark RDD持久化级别

作者: Alex90 | 来源:发表于2018-01-05 14:17 被阅读66次

RDD持久化用于RDD重用和节省重新计算,方便构建迭代算法,缓存粒度为整个RDD

持久化级别

StorageLevel 说明
MEMORY_ONLY 使用未序列化的Java对象格式,将数据保存在内存中。如果内存不够存放所有的数据,则数据可能就不会进行持久化,默认的持久化策略
MEMORY_AND_DISK 使用未序列化的Java对象格式,优先尝试将数据保存在内存中。如果内存不够存放所有的数据,会将数据写入磁盘文件中。不会立刻输出到磁盘
MEMORY_ONLY_SER RDD的每个partition会被序列化成一个字节数组,节省空间,读取时间更占CPU
MEMORY_AND_DISK_SER 序列化存储,超出部分写入磁盘文件中
DISK_ONLY 使用未序列化的Java对象格式,将数据全部写入磁盘文件中
MEMORY_ONLY_2 对于上述任意一种持久化策略,如果加上后缀_2,代表的是将每个持久化的数据,都复制一份副本,并将副本保存到其他节点上
OFF_HEAP RDD序列化存储在Tachyon

如何选择存储级别?

如果默认能满足使用默认的
如果不能于MEMORY_ONLY很好的契合,建议使用MEMORY_ONLY_SER
尽可能不要存储数据到磁盘上,除非数据集函数计算量特别大,或者它过滤了大量数据,否则从新计算一个分区的速度和从磁盘中读取差不多
如果想拥有快速故障恢复能力,可以使用复制存储级别(_2)
可以自定义存储级别(如复制因子为3),使用StorageLevel单例对象apply方法

相关文章

  • Spark RDD持久化级别

    RDD持久化用于RDD重用和节省重新计算,方便构建迭代算法,缓存粒度为整个RDD 持久化级别 如何选择存储级别? ...

  • RDD持久化

    RDD持久化 Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久化操作时,每个节点...

  • Spark RDD 持久化

    RDD Persistence Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久...

  • Spark相关文章索引(3)

    环境部署 Spark2.1.0的Standalone模式部署 基本常识 spark中的rdd的持久化 Spark入...

  • Spark 6. RDD 持久化

    RDD 持久化 原文地址: http://spark.apache.org/docs/latest/program...

  • Spark性能优化之RDD持久化或Checkpoint

    1.使用序列化的持久化级别 除了对多次使用的RDD进行持久化操作之外,还可以进一步优化其性能。因为很有可能,RDD...

  • Spark持久化级别

    Spark相对于MR的一个先进点就是可以基于内存的高速运算,在Spark任务中,将那些多次复用的rdd进行缓存,可...

  • Spark-RDD持久化

    (1) persist算子 使用方法: StorageLevel说明: StorageLevel的构造函数: St...

  • Spark-RDD持久化

    (1) persist算子 使用方法: StorageLevel说明: StorageLevel的构造函数: St...

  • Spark-RDD持久化

    (1) persist算子 使用方法: StorageLevel说明: StorageLevel的构造函数: St...

网友评论

    本文标题:Spark RDD持久化级别

    本文链接:https://www.haomeiwen.com/subject/crxsnxtx.html