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

相关推荐
IT研究室4 小时前
最新大数据毕业设计选题推荐-基于大数据的城市交通流量数据可视化分析-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·课程设计
面向Google编程4 小时前
Apache Iceberg Variant 类型:v3 半结构化数据不再「二选一」
大数据·后端
大大大大晴天5 小时前
从数仓建模到 AI 数据底座:重新理解数据治理的位置
大数据
IT大白鼠6 小时前
MySQL 分布式集群系列 · 第四篇——实操部署指南:从零搭建生产级 MySQL NDB 集群
数据库·分布式·mysql
不会写代码的女程序猿6 小时前
中小康养门店选型参考|明理 AI 四诊仪场景适配与投入回报分析
大数据·人工智能·科技·ai·健康医疗
IT大白鼠6 小时前
MySQL 分布式集群系列 · 第三篇——核心原理精讲:NDB 自动分片、多主写入与数据同步
数据库·分布式·mysql
云泽8086 小时前
Git 版本控制系统(下):从 .git 目录结构到冲突解决机制详解
大数据·git·elasticsearch
Elastic 中国社区官方博客6 小时前
教程:使用 ES|QL 进行威胁狩猎
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
weixin_505061456 小时前
原厂技术协同|世强硬创携手星坤连接解锁 IOTE 高可靠互连解决方案
大数据
乐迪信息6 小时前
如何通过AI防爆摄像机精准判断船舶超速?
大数据·人工智能·算法·安全·目标跟踪