spark学习(2)之检查点和缓存机制

2024-06-08 14:58

本文主要是介绍spark学习(2)之检查点和缓存机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

检查点

检查点是spark的一种容错机制,它是在lineage过程中定时的把计算结果保存起来–》检查点目录
lineage (血统):spark执行周期
检查点目录分为:
本地目录:需要spark-shell启动到本地模式
hdfs目录:需要spark-shell启动到集群模式
因为我们只一般用到hdfs,所以我们下面示例只说到把检查点设置到hdfs中,
操作:
1、开启spark-shell

./bin/spark-shell --master spark://bigdata111:7077

2、设置检查点

sc.setCheckpointDir("hdfs://bigdata111:9000/spark/ckpt/0522")

3、我们从hdfs获取一个rdd

val rdd1=sc.textFile("hdfs://bigdata111:9000/input/data.txt")

4、我们希望在rdd1计算过程中各个阶段存储计算结果,我们需要给rdd1设置检查点

rdd1.checkpoint

5、然后我们给rdd1执行一个操作后,就报计算过程中的各阶段计算结果保存在了hdfs上

rdd1.count

6、然后我们就可以在检查点的目录中查看存储的结果了

缓存

我们可以把执行的结果放在缓存中,等下次执行同样的计算的时候就直接拿缓存中的结果

val rdd1=sc.textFile("/root/training/salse")
rdd1.count   //正常执行计算操作
rdd1.cache  //给rdd1设置缓存
rdd1.count  //在这次执行的时候并不会很快,可能花费的时间更长,除了计算还需要把计算结果反倒缓存中
rdd1.count  //等到这次执行的时候就很快了

我们使用cache和persisit设置缓存中,在内部cache也是调用的persist,默认设置缓存设置在缓存中,我们也给以给persist传一个参数StorageLevel来设置缓存的策略

这篇关于spark学习(2)之检查点和缓存机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1042512

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringRetry重试机制之@Retryable注解与重试策略详解

《SpringRetry重试机制之@Retryable注解与重试策略详解》本文将详细介绍SpringRetry的重试机制,特别是@Retryable注解的使用及各种重试策略的配置,帮助开发者构建更加健... 目录引言一、SpringRetry基础知识二、启用SpringRetry三、@Retryable注解

SpringKafka错误处理(重试机制与死信队列)

《SpringKafka错误处理(重试机制与死信队列)》SpringKafka提供了全面的错误处理机制,通过灵活的重试策略和死信队列处理,下面就来介绍一下,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、Spring Kafka错误处理基础二、配置重试机制三、死信队列实现四、特定异常的处理策略五

java中反射(Reflection)机制举例详解

《java中反射(Reflection)机制举例详解》Java中的反射机制是指Java程序在运行期间可以获取到一个对象的全部信息,:本文主要介绍java中反射(Reflection)机制的相关资料... 目录一、什么是反射?二、反射的用途三、获取Class对象四、Class类型的对象使用场景1五、Class

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Redis解决缓存击穿问题的两种方法

《Redis解决缓存击穿问题的两种方法》缓存击穿问题也叫热点Key问题,就是⼀个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击,本文给大家介绍了Re... 目录引言解决办法互斥锁(强一致,性能差)逻辑过期(高可用,性能优)设计逻辑过期时间引言缓存击穿:给

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

一文详解Nginx的强缓存和协商缓存

《一文详解Nginx的强缓存和协商缓存》这篇文章主要为大家详细介绍了Nginx中强缓存和协商缓存的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、强缓存(Strong Cache)1. 定义2. 响应头3. Nginx 配置示例4. 行为5. 适用场景二、协商缓存(协