Checkpoint_意义 | 学习笔记

简介: 快速学习 Checkpoint_意义

开发者学堂课程【大数据Spark2020最新课程(知识精讲与实战演练)第二阶段Checkpoint_意义学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/689/detail/12001


Checkpoint_意义


checkpoint 是 RDD 中重要的机制,在 spark 中很重要,学习此章节可以独立使用 checkpoint,了解缓存,checkpoint 是什么,对于 RDD 的运算,容错,以及对 RDD 都有更多的认识。


内容介绍:

一、什么是 checkpoint

二、Checkpoint 作用

三、Checkpoint cache 的区别


一、什么是 checkpoint

进入笔记,spark Checkpoint 的主要作用是斩断 RDD 的依赖链。

Checkpoint 的两种方式

1、可靠的将数据存储在可靠的存储引擎中,例如 HDFS。要将 RDD 缓存在本地 block manager 中,在 exquator中。如果 work 崩溃,数据消失。而 RDD 也能存储在 HDFS 中,即一种 checkpoint 可靠的方式,即将 RDD 的数据缓存到 HDFS 中。

2、本地的将数据存储在本地,称为 Local checkpoint,较少使用,和 RDD 的区别比较小。本地存储方式不太符合checkpoint 的思想。

 

二、Checkpoint 有一个很重要的作用,即斩断依赖链。

举例说明:

spark 没有关系,NameNode 如何保存数据。有1NameNode2datenodeNameNode 是主,datenode是从的一个关系,如果外部的文件要存到 HDFS 中,需要先经过 NameNode,将文件生成文件数,放在目录中,并添加相应的信息。即为 NameNode 的机制。

image.png

两大存储分别为 edits fsimageedits 是一个只能追加的 Log,或者队列。

距离:插入多个新文件,且修改文件,此时有好多记录,都是 edits 的记录。

1. 每一次修改文件时都会向 edits 中添加一条记录。不需要每次修改文件数,只添加记录,不影响他人,同时保持了文件状态。在某些情况下,删掉所有的 edits,在 fsimage 生成一个新的 fsimage,那 fsimage 代表当前最新系统文件数,文件状态。

2.在一定条件满足的情况下,把 edits 删掉,添加一个新的 fsimage,包含了系统当前最新的状态。即 NameNode 的机制。

Edits 删掉的动作有什么优势?

如果 edits 不删除会越来越多,如果想要查看系统当前的文件数,要从整个 edits 中追溯当前状态。如果有十条记录,分别为添加、中间有多个修改、需要从头开始寻找当前状态,每次寻找速度太慢,效率低,因此删除前面的edits,会增快速度,提升稳定性,出错少。为 HDFS 机制。

image.png

此机制和 spark 相似,spark 是多个 RDD 相连,依次生成的关系。当 RDD 的依赖链越来越长时,最后一个 RDD6某一个分区的数据出错,需要依次往前回溯,寻找错误,重新计算数据,如果流程很长,将会对系统造成影响。

此时斩断依赖链发挥作用。斩断依赖链是斩断 RDD 的依赖流程中的链条,斩断后,不需要计算之前的数据。如果依赖链切断,容错如何做?如何恢复数据?

如果中途 RDD4出错,且依赖被斩断,正常情况下可以重放,即从 RDD3重新计算数据。如果将 RDD4数据放在可靠的外部存储工具,例如 HDFS,理论上可以解决问题且不出错,容错是其基本的点。错误数据可以从 HDFS 中重取。

 

三、Checkpoint cache 的区别

Checkpoint 是缓存,分为两部分: 斩断依赖链保存数据,形成新的依赖关系。计算快且出错少; 是很好的容错手段,保存数据提供使用,与 cache 相似。

最大的区别是 Catch 可以把 RDD 计算出并放在内存中,但是 RDD 的依赖链不变,如果出错进行重放,回溯计算,重新计算出错的数据。Checkpoint catch 的方式不相同。

在不出错的情况下,步骤相似。如果出错,容错的手段不一样。Catch 进行重放计算,但 checkpoint 直接将结果保存在外部可靠存储中,如果出错,直接复制文件实现容错。

存放位置的不同是最大的区别 :

1checkpoint 可以保存数据到 HDFS 这类可靠的存储上,而 persist cache 只能保存在本地的磁盘和内存中。

2、Checkpoint 可以斩断 RDD 的依赖链,而 persist cache 不可以。

3、Checkpoint 没有向上依赖链,所以程序结束后依然存在不会被删除,而 cache persist 会在程序结束之后立刻被清除。

总结:

最大的区别是 Checkpoint 可以将数据存在外部可靠的存储引擎中,然后斩断依赖链,cache 不能斩断依赖链,只能把数据保存在本地的磁盘和内存等不可靠的存储中,进行重放容错。

相关文章
|
并行计算 算法 计算机视觉
【MATLAB 】 EMD信号分解+模糊熵(近似熵)算法
【MATLAB 】 EMD信号分解+模糊熵(近似熵)算法
341 0
|
监控 Dubbo Java
深入理解Zookeeper系列-2.Zookeeper基本使用和分布式锁原理
深入理解Zookeeper系列-2.Zookeeper基本使用和分布式锁原理
238 0
|
3月前
|
消息中间件 人工智能 资源调度
云上AI推理平台全掌握 (5):大模型异步推理服务
针对大模型推理服务中“高计算量、长时延”场景下同步推理的弊端,阿里云人工智能平台 PAI 推出了一套基于独立的队列服务异步推理框架,解决了异步推理的负载均衡、实例异常时任务重分配等问题,确保请求不丢失、实例不过载。
|
SQL 存储 Java
Hive教程(09)- 彻底解决小文件的问题
Hive教程(09)- 彻底解决小文件的问题
1197 1
|
6月前
|
运维 Docker 容器
最简 Odoo 部署方法:Websoft9 企业应用托管平台
Odoo手工部署通常依赖Docker,需依次完成Docker安装、镜像拉取与容器运行,但存在安装复杂、镜像下载慢、配置繁琐及管理困难等问题。Websoft9提供了解决方案:通过云原生模板和自动化工具简化部署。仅需登录Websoft9控制台选择Odoo版本并绑定服务器,创建数据库后初始化,最后登录后台完成设置,大幅降低部署难度与运维成本。
201 0
  最简 Odoo 部署方法:Websoft9 企业应用托管平台
|
9月前
|
存储 监控 算法
Flink 四大基石之 Checkpoint 使用详解
Flink 的 Checkpoint 机制通过定期插入 Barrier 将数据流切分并进行快照,确保故障时能从最近的 Checkpoint 恢复,保障数据一致性。Checkpoint 分为精确一次和至少一次两种语义,前者确保每个数据仅处理一次,后者允许重复处理但不会丢失数据。此外,Flink 提供多种重启策略,如固定延迟、失败率和无重启策略,以应对不同场景。SavePoint 是手动触发的 Checkpoint,用于作业升级和迁移。Checkpoint 执行流程包括 Barrier 注入、算子状态快照、Barrier 对齐和完成 Checkpoint。
1799 20
|
Kubernetes API Docker
kubernetes Operator 【2】实战CRD编程
kubernetes Operator 【2】实战CRD编程
kubernetes Operator 【2】实战CRD编程
|
Python
Python中访问不存在的属性
【6月更文挑战第4天】
298 5
|
存储 机器学习/深度学习 并行计算
阿里云服务器X86计算、Arm计算、GPU/FPGA/ASIC、高性能计算架构区别
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下不同类型的云服务器有何不同,主要特点及适用场景有哪些。
阿里云服务器X86计算、Arm计算、GPU/FPGA/ASIC、高性能计算架构区别
|
测试技术 UED
前景理论
前景理论
453 0