【赵渝强老师】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目录下生成了相应的检查点信息,如下图所示。

相关推荐
standovon1 小时前
RabbitMQ 的介绍与使用
分布式·rabbitmq·ruby
码农小白AI1 小时前
AI审核加持的IACheck:塔吊与施工电梯安全监测系统检测报告如何实现高效合规与风险可控
大数据·人工智能·安全
leo_2322 小时前
小数据”与大数据(之二)
大数据·企业信息化·smp(软件制作平台)·软件开发工具·应用系统·小数据系统
十月南城2 小时前
文档化与知识库方法——ADR、Runbook与故障手册的结构与维护节奏
大数据·数据库
AEIC学术交流中心2 小时前
【快速EI检索 | IEEE出版】第五届电子信息工程、大数据与计算机技术国际学术会议 (EIBDCT 2026)
大数据
2301_767902642 小时前
ceph分布式存储(一)
分布式·ceph
2301_767902642 小时前
ceph分布式存储(二)
分布式·ceph
狼与自由2 小时前
Redis 分布式锁
数据库·redis·分布式
cd_949217213 小时前
告别硬床误区,梦百合以AI科技重塑正确睡眠观
大数据·人工智能·科技
DX_水位流量监测3 小时前
德希科技农村供水工程水质在线监测方案
大数据·运维·网络·水质监测·水质传感器·水质厂家·农村供水水质监测方案