187 RDD的缓存

简介: 187 RDD的缓存

Spark速度非常快的原因之一,就是在不同操作中可以在内存中持久化或缓存个数据集。当持久化某个RDD后,每一个节点都将把计算的分片结果保存在内存中,并在对此RDD或衍生出的RDD进行的其他动作中重用。这使得后续的动作变得更加迅速。RDD相关的持久化和缓存,是Spark最重要的特征之一。可以说,缓存是Spark构建迭代式算法和快速交互式查询的关键。

RDD缓存方式

RDD通过persist方法或cache方法可以将前面的计算结果缓存,但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供后面重用。

通过查看源码发现cache最终也是调用了persist方法,默认的存储级别都是仅在内存存储一份,Spark的存储级别还有好多种,存储级别在object StorageLevel中定义的。

缓存有可能丢失,或者存储存储于内存的数据由于内存不足而被删除,RDD的缓存容错机制保证了即使缓存丢失也能保证计算的正确执行。通过基于RDD的一系列转换,丢失的数据会被重算,由于RDD的各个Partition是相对独立的,因此只需要计算丢失的部分即可,并不需要重算全部Partition。

目录
相关文章
|
4月前
|
存储 缓存 分布式计算
Spark RDD持久化与缓存:提高性能的关键
Spark RDD持久化与缓存:提高性能的关键
|
存储 缓存 分布式计算
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(下)
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(下)
138 0
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(下)
|
存储 缓存 分布式计算
RDD 的缓存-缓存级别 | 学习笔记
快速学习 RDD 的缓存-缓存级别
301 0
RDD 的缓存-缓存级别 | 学习笔记
|
缓存 分布式计算 算法
RDD 的缓存_缓存的意义_结论 | 学习笔记
快速学习 RDD 的缓存_缓存的意义_结论
RDD 的缓存_缓存的意义_结论 | 学习笔记
|
数据采集 缓存 分布式计算
RDD 的缓存_缓存的意义_过程代码 | 学习笔记
快速学习 RDD 的缓存_缓存的意义_过程代码
RDD 的缓存_缓存的意义_过程代码 | 学习笔记
|
缓存 分布式计算 大数据
RDD 的缓存_缓存的意义_案例介绍 | 学习笔记
快速学习 RDD 的缓存_缓存的意义_案例介绍
RDD 的缓存_缓存的意义_案例介绍 | 学习笔记
|
存储 缓存 分布式计算
RDD 的缓存_缓存的 API | 学习笔记
快速学习 RDD 的缓存_缓存的 API
RDD 的缓存_缓存的 API | 学习笔记
|
缓存 分布式计算 大数据
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(中)
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(中)
192 0
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(中)
|
缓存 分布式计算 Scala
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(上)
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(上)
226 0
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(上)
|
3天前
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案