Spark CheckPoint彻底解密(41)

一、Checkpoint到底是什么?

1, Spark在生产环境下经常会面临Tranformations的RDD非常多(例如一个Job中包含1万个RDD)或者具体Tranformation产生的RDD本身计算特别复杂和耗时(例如计算时常超过1个小时),此时我们必须考虑对计算结果数据的持久化;

2, Spark是擅长多步骤迭代,同时擅长基于Job的复用,这个时候如果能够对曾经计算的过程产生的数据进行复用,就可以极大的提升效率;

3, 如果采用persist把数据放在内存中的话,虽然是最快速的但是也是最不可靠的;如果放在磁盘上也不是完全可靠的!例如磁盘会损坏。

4, Checkpoint的产生就是为了相对而言更加可靠的持久化数据,在Checkpoint可以指定把数据放在本地并且是多副本的方式,但是在正常的生产环境下是放在HDFS,这就天然的借助了HDFS高容错的高可靠的特征来完成了最大化的可靠的持久化数据的方式;

5, Checkpoint是为了最大程度保证绝度可靠的复用RDD计算数据的Spark的高级功能,通过Checkpoint我们通过把数据持久化的HDFS来保证数据最大程度的安全性;

6, Checkpoint就是针对整个RDD计算链条中特别需要数据持久化的环节(后面会反复使用当前环节的RDD)开始基于HDFS等的数据持久化复用策略,通过对RDD启动checkpoint机制来实现容错和高可用;

二、Checkpoint原理机制

1, 通过调用SparkContext.setCheckpointDir方法来指定进行Checkpoint操作的RDD把数据放在哪里,在生产集群中是放在HDFS上的,同时为了提高效率在进行checkpoint的使用可以指定很多目录

2, 在进行RDD的checkpoint的时候其所依赖的所有的RDD都会从计算链条中清空掉;

3, 作为最佳实践,一般在进行checkpoint方法调用前通过都要进行persist来把当前RDD的数据持久化到内存或者磁盘上,这是因为checkpoint是Lazy级别,必须有Job的执行且在Job执行完成后才会从后往前回溯哪个RDD进行了Checkpoint标记,然后对该标记了要进行Checkpoint的RDD新启动一个Job执行具体的Checkpoint的过程;

4, Checkpoint改变了RDD的Lineage;

5, 当我们调用了checkpoint方法要对RDD进行Checkpoint操作的话,此时框架会自动生成RDDCheckpointData,当RDD上运行过一个Job后就会立即触发RDDCheckpointData中的checkpoint方法,在其内部会调用doCheckpoint,实际上在生产环境下会调用ReliableRDDCheckpointData的doCheckpoint,在生产环境下会导致ReliableCheckpointRDD的writeRDDToCheckpointDirectory的调用,而在writeRDDToCheckpointDirectory方法内部会触发runJob来执行把当前的RDD中的数据写到Checkpoint的目录中,同时会产生ReliableCheckpointRDD实例;

备注:

新浪微博:http://www.weibo.com/ilovepains

微信公众号:DT_Spark

时间: 2024-12-19 03:18:47

Spark CheckPoint彻底解密(41)的相关文章

[Spark內核] 第41课:Checkpoint彻底解密:Checkpoint的运行原理和源码实现彻底详解

本课主题 Checkpoint 运行原理图 Checkpoint 源码解析 引言 Checkpoint 到底是什么和需要用 Checkpoint 解决什么问题: Spark 在生产环境下经常会面临 Transformation 的 RDD 非常多(例如一个Job 中包含1万个RDD) 或者是具体的 Transformation 产生的 RDD 本身计算特别复杂和耗时(例如计算时常超过1个小时) , 可能业务比较复杂,此时我们必需考虑对计算结果的持久化. Spark 是擅长多步骤迭代,同时擅长基于

Spark内核架构解密(DT大数据梦工厂)

只有知道内核架构的基础上,才知道为什么要这样写程序? 手工绘图来解密Spark内核架构 通过案例来验证Spark内核架构 Spark架构思考 ==========Spark Runtime的几个概念============ 下载下来运行,基本都是standalone模式,如果掌握了standalone,则yarn和mesos,以后不做特别说明,一律是standalone模式 application=driver+executor,executor是具体处理数据分片,里面是线程池并发的处理数据分片

Spark3000门徒第13课Spark内核架构解密总结

昨晚听了王家林老师的第13课Spark内核架构解密,课堂笔记如下: executor中线程池并发执行和复用,Spark executor, backed by a threadpool to run tasks. 默认一个work为一个Application只开启一个executor.一个worker里executor是多点好还是少点好,看具 体情况. Worker:管理当前Node机器资源,并接受Master的指令来分配具体的计算资源Executor(使用ExecutorRunner 在新的进

[Spark內核] 第42课:Spark Broadcast内幕解密:Broadcast运行机制彻底解密、Broadcast源码解析、Broadcast最佳实践

本课主题 Broadcast 运行原理图 Broadcast 源码解析 Broadcast 运行原理图 Broadcast 就是将数据从一个节点发送到其他的节点上; 例如 Driver 上有一张表,而 Executor 中的每个并行执行的Task (100万个Task) 都要查询这张表的话,那我们通过 Broadcast 的方式就只需要往每个Executor 把这张表发送一次就行了,Executor 中的每个运行的 Task 查询这张唯一的表,而不是每次执行的时候都从 Driver 中获得这张表

Spark天堂之门(SparkContext)解密(DT大数据梦工厂)

内容: 1.Spark天堂之门: 2.SparkContext使用案例鉴赏: 3.SparkContext内幕: 4.SparkContext源码解密: SparkContext是编写任意Spark程序的第一个对象,用SparkConf为传入的参数 ==========Spark天堂之门:SparkContext !!!============ 1.Spark程序在运行的时候分为Driver和Executors: 2.Spark程序编写是基于SparkContext的,具体来说包含两个方面: 1

Checkpoint彻底解密:Checkpoint的运行原理和源码实现彻底详解(DT大数据梦工厂)

内容: 1.Checkpoint重大价值: 2.Checkpoint运行原理图: 3.Checkpoint源码解析: 机器学习.图计算稍微复杂迭代算法的时候都有Checkpoint的身影,作用不亚于persist ==========Checkpoint到底是什么============ 1.Spark 在生产环境下经常会面临transformation的RDD非常多(例如一个Job中包含1万个RDD)或者具体transformation的RDD本身计算特别复杂或者耗时(例如计算时长超过1个小时

spark checkpoint详解

https://www.cnblogs.com/superhedantou/p/9004820.html checkpoint在spark中主要有两块应用:一块是在spark core中对RDD做checkpoint,可以切断做checkpoint RDD的依赖关系,将RDD数据保存到可靠存储(如HDFS)以便数据恢复:另外一块是应用在spark streaming中,使用checkpoint用来保存DStreamGraph以及相关配置信息,以便在Driver崩溃重启的时候能够接着之前进度继续进

Spark Shuffle内幕解密(24)

一.到底什么是Shuffle? Shuffle中文翻译为"洗牌",需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个     计算节点上进行计算. 二.Shuffle可能面临的问题? 1, 数据量非常大: 2, 数据如何分类,即如何Partition,Hash.Sort.钨丝计算: 3, 负载均衡(数据倾斜): 4, 网络传输效率,需要在压缩和解压缩之间做出权衡,序列化和反序列也是要考虑的问题: 说明:具体的Task进行计算的时候尽一切最大可能使得数据具备Proc

spark内核架构解密(13)

本期主要介绍下spark的内核架构.spark的应用程序总体来说,主要包括两部分,一部分是Driver,其包括了SparkConf和SparkContext,另一部分就是Executor,运行具体的业务逻辑. 应用程序的提交有两种方式, 1.Driver进程运行在客户端,对应用程序进行监控. 2.主节点指定某个worker节点启动Driver,负责整个应用的监控. Driver一般运行在一台专门用来提交spark程序的机器上,这台机器一般一定和spark cluster在同样的网络环境中(因为D