Learning Spark笔记5-持久化(缓存)
来源:互联网 发布:centos添加ip黑名单 编辑:程序博客网 时间:2024/05/19 13:07
持久化(缓存)
之前讨论过,Spark RDDs是lazily evaluated,我们可能会多次使用同一个RDD。如果这样做的话,每次在RDD上调用一个动作时,Spark都将重新计算RDD以及它的所有依赖。对于迭代算法就特别的耗费资源,下面是一个计数的例子。
Example 3-39. Double execution in Scala
val result = input.map(x => x*x)
println(result.count())
println(result.collect().mkString(","))
防止多次一个RDD,我们可以让Spark持久化数据。当我们让Spark持久化一个RDD的时候,计算RDD的节点会存储他们的分区。如果在一个节点上持久化时失败了,那么Spark会根据需要重新计算丢失数据的分区。如果我们不想要让集群变慢,那么我们就可以在复制多个数据到不同的节点上。
Spark可以根据不同的目的,支持不同级别的持久化。在Scala和Java中,默认的persist()会将数据以非序列化对象形式保存在JVM堆中。对于Python,通常是序列化数据到持久化的存储。
堆栈缓存还是实验性的,这里使用了Tachyon。
Example 3-40. persist() in Scala
val result = input.map(x => x * x)
result.persist(StorageLevel.DISK_ONLY)
println(result.count())
println(result.collect().mkString(","))
注意我们在第一个动作之前调用persist()。
如果在内存中存储了太多的数据,Spark将使用最近最少(LRU)缓存策略自动释放旧分区。对于仅内存存储级别,下次它被访问时会重新计算所有分区,但对于内存-磁盘的方式,它会将他们写到磁盘上。
RDDs有一个unpersist(),可以手动删除缓存
之前讨论过,Spark RDDs是lazily evaluated,我们可能会多次使用同一个RDD。如果这样做的话,每次在RDD上调用一个动作时,Spark都将重新计算RDD以及它的所有依赖。对于迭代算法就特别的耗费资源,下面是一个计数的例子。
Example 3-39. Double execution in Scala
val result = input.map(x => x*x)
println(result.count())
println(result.collect().mkString(","))
防止多次一个RDD,我们可以让Spark持久化数据。当我们让Spark持久化一个RDD的时候,计算RDD的节点会存储他们的分区。如果在一个节点上持久化时失败了,那么Spark会根据需要重新计算丢失数据的分区。如果我们不想要让集群变慢,那么我们就可以在复制多个数据到不同的节点上。
Spark可以根据不同的目的,支持不同级别的持久化。在Scala和Java中,默认的persist()会将数据以非序列化对象形式保存在JVM堆中。对于Python,通常是序列化数据到持久化的存储。
堆栈缓存还是实验性的,这里使用了Tachyon。
Example 3-40. persist() in Scala
val result = input.map(x => x * x)
result.persist(StorageLevel.DISK_ONLY)
println(result.count())
println(result.collect().mkString(","))
注意我们在第一个动作之前调用persist()。
如果在内存中存储了太多的数据,Spark将使用最近最少(LRU)缓存策略自动释放旧分区。对于仅内存存储级别,下次它被访问时会重新计算所有分区,但对于内存-磁盘的方式,它会将他们写到磁盘上。
RDDs有一个unpersist(),可以手动删除缓存
0 0
- Learning Spark笔记5-持久化(缓存)
- spark持久化(缓存)
- Spark Streaming:缓存与持久化机制
- Machine Learning with Spark 笔记(chapter3 )
- Spark RDD 持久化
- Spark的持久化
- Learning Spark笔记7-聚合
- Learning Spark笔记10-PageRank
- Learning Spark笔记12-累加器
- Learning Spark笔记1-Spark介绍
- Learning Spark笔记3-传递函数给Spark
- Learning Spark笔记16-调试Spark
- Learning Spark笔记17-Spark SQL
- android持久化缓存
- 2017补全计划-持久化缓存-学习笔记
- Learning Spark笔记8-数据分区(高级)
- Learning Spark笔记13-Broadcast Variables(传播变量)
- [Spark]Spark RDD 指南五 持久化
- Unity游戏开发之绘制准心
- Linux上Apache的基础配置
- python基础学习之函数(3)-λ表达式,过滤器,map函数
- 如何优雅的关闭一个线程
- 第十一章 算法的时间复杂度
- Learning Spark笔记5-持久化(缓存)
- eclipse安装反编译插件
- 关于安装一些第三方库的方法的总结
- 298本R语言书籍免费送!!!
- 千万级规模高性能、高并发的网络架构经验分享
- (六)RabbitMQ消息队列-消息任务分发与消息ACK确认机制(PHP版)
- python基础学习之字典
- 网络编程信息同步2
- 崇志宏 转“博弈机器学习”-东南大学机器学习