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

相关推荐
得物技术2 天前
从埋点需求到规则资产:Hermes Agent 重构得物数仓工作流
大数据·llm·ai编程
久美子2 天前
AI驱动数仓建设的Harness工程实践——本体建模、知识分层与上下文工程
大数据
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
大志哥1233 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
果丁智能3 天前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
ApacheSeaTunnel3 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
weixin_397574093 天前
PDF复杂表格的1:1还原引擎:跨页表格自动拼接技术实战
大数据·人工智能·pdf
极光代码工作室3 天前
基于数据仓库的电商数据分析平台
大数据·hadoop·python·spark·数据可视化
秋名山码民3 天前
Graph RAG 深度解析:从向量检索到知识推理的技术演进
大数据·人工智能·rag
JLWcai202510093 天前
铸造领域树脂砂轮|金利威多场景解决方案,20 + 配方覆盖全需求
mongodb·zookeeper·eureka·spark·rabbitmq·memcached·storm