【赵渝强老师】Spark的容错机制:检查点

由于Spark的计算是在内存中完成,因此任务执行的生命周期lineage(血统)越长,执行出错的概念就会越大。Spark通过检查点Checkpoint的方式,将RDD的状态写入磁盘进行持久化的保存从而支持容错。如果在检查点之后有节点出现了问题,Spark只需要从检查点的位置开始重新执行lineage就可以了,这样就减少了开销。设置checkpoint的目录,可以是本地的文件夹,也可以是HDFS。

视频讲解如下
【赵渝强老师】Spark的容错机制:检查点

建议在生产系统中采用具有容错能力、高可靠的文件系统作为检查点保存的目的地。

1、使用本地目录作为检查点目录

这种模式需要将spark-shell运行在本地模式上。下面的代码使用了本地目录作为RDD检查点的目录

(1)设置检查点目录。

scala 复制代码
scala> sc.setCheckpointDir("file:///root/temp/checkpoint")

(2)创建RDD。

scala 复制代码
scala> val rdd1 = sc.textFile("hdfs://bigdata111:9000/input/sales")

(3)标识RDD的检查点。

scala 复制代码
scala> rdd1.checkpoint

(4)执行计算。

scala 复制代码
scala> rdd1.count

(5)当计算完成后,查看本地的/root/temp/checkpoint目录下生成了相应的检查点信息,如下图所示。

2、使用HDFS目录作为检查点目录。

这种模式需要将spark-shell运行在集群模式上。下面的代码使用了HDFS目录作为RDD检查点的目录

(1)设置检查点目录。

scala 复制代码
scala> sc.setCheckpointDir("hdfs://bigdata111:9000/spark/checkpoint")

(2)创建RDD。

scala 复制代码
scala> val rdd1 = sc.textFile("hdfs://bigdata111:9000/input/sales")

(3)标识RDD的检查点。

scala 复制代码
scala> rdd1.checkpoint

(4)执行计算。

scala 复制代码
scala> rdd1.count

(5)当计算完成后,查看HDFS的/spark/checkpoint目录下生成了相应的检查点信息,如下图所示。

相关推荐
lizhihai_9944 分钟前
股市学习心得-六张分时保命图
大数据·人工智能·学习
渣渣盟1 小时前
Flink 流处理那些事儿:状态、时间与容错
大数据·flink
CS创新实验室2 小时前
CS实验室行业报告:生物医药与生物工程行业就业分析报告
大数据·人工智能·生物医药
身如柳絮随风扬2 小时前
多数据源切换实战:从业务场景到3种实现方案全解析
java·分布式·微服务
无忧智库3 小时前
跨行业数据要素可信流通体系建设:打破信任壁垒的完整工程方法论(WORD)
大数据·人工智能
小王毕业啦4 小时前
2007-2024年 省级-农林牧渔总产值、农业总产值数据(xlsx)
大数据·人工智能·数据挖掘·数据分析·社科数据·实证分析·经管数据
数据皮皮侠4 小时前
上市公司创新韧性数据(2000-2024)|顶刊同款 EIR 指数
大数据·人工智能·算法·智慧城市·制造
AIMath~4 小时前
雪花算法+ZooKeeper解决方案+RPC是什么
分布式·zookeeper·云原生
科研前沿4 小时前
纯视觉无感解算 + 动态数字孪生:室内外无感定位技术全新升级
大数据·人工智能·算法·重构·空间计算
KmSH8umpK4 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第六篇
数据库·redis·分布式