RDD的checkpoint机制

checkpoint原理机制

当RDD使用cache机制从内存中读取数据,如果数据没有读到,会使用checkpoint机制读取数据。此时如果没有checkpoint机制,那么就需要找到父RDD重新计算数据了,因此checkpoint是个很重要的的容错机制。checkpoint就是对于一个RDDchain(链),如果后面需要反复使用某些中间结果RDD,可能因为一些故障导致该中间数据丢失,那么就可以针对该RDD启动checkpoint机制,使用checkpoint首先需要调用sparkContext的setCheckpoint方法,设置一个容错文件系统目录,比如HDFS,然后对RDD调用checkpoint方法。之后再RDD所处的job运行结束后,会启动一个单独的job来将checkpoint过的数据写入之前设置的文件系统持久化,进行高可用。后面的计算使用该RDD时,如果数据丢了,但是还是可以从他的checkpoint中读取数据,不需要重新计算

checkpoint和持久化的区别:

  1. 持久化只是将数据保存在BlockManager中,而RDD的lineage是不变的。但是checkpoint执行完后,RDD已经没有之前所谓的依赖RDD了,而只有一个强行为其设置的checkpointRDD,RDD的lineage改变了。
  2. 持久化的数据丢失可能性更大,磁盘、内存都可能会存在数据丢失的情况,因为磁盘内存都有可能被清理。但是checkpoint的数据通常是存储在如HDFS等容错、高可用的文件系统,数据丢失可能性较小。
  • 注:默认情况下,如果某个RDD没有持久化,但是设置了checkpoint,会存在问题,本来这个job都执行结束了,但是由于中间RDD没有持久化,checkpoint job想要将RDD的数据写入外部文件系统的话,需要全部重新计算一次,再将计算出来的RDD数据checkpoint到外部文件系统。所以,建议对checkpoint()的RDD使用 persist(StorageLevel.DISK_ONLY),该RDD计算之后,就直接持久化到磁盘上。后面进行checkpoint操作时就可以直接从磁盘上读取RDD的数据,并checkpoint到外部系统

原文地址:https://www.cnblogs.com/xuziyu/p/11060094.html

时间: 2024-11-08 02:42:22

RDD的checkpoint机制的相关文章

InnoDB存储引擎介绍-(4)Checkpoint机制二

原文链接 http://www.cnblogs.com/chenpingzhao/p/5107480.html 一.简介 思考一下这个场景:如果重做日志可以无限地增大,同时缓冲池也足够大,那么是不需要将缓冲池中页的新版本刷新回磁盘.因为当发生宕机时,完全可以通过重做日志来恢复整个数据库系统中的数据到宕机发生的时刻. 但是这需要两个前提条件:1.缓冲池可以缓存数据库中所有的数据:2.重做日志可以无限增大 因此Checkpoint(检查点)技术就诞生了,目的是解决以下几个问题:1.缩短数据库的恢复时

【mysql】关于checkpoint机制

一.简介 思考一下这个场景:如果重做日志可以无限地增大,同时缓冲池也足够大,那么是不需要将缓冲池中页的新版本刷新回磁盘.因为当发生宕机时,完全可以通过重做日志来恢复整个数据库系统中的数据到宕机发生的时刻. 但是这需要两个前提条件:1.缓冲池可以缓存数据库中所有的数据:2.重做日志可以无限增大 因此Checkpoint(检查点)技术就诞生了,目的是解决以下几个问题:1.缩短数据库的恢复时间:2.缓冲池不够用时,将脏页刷新到磁盘:3.重做日志不可用时,刷新脏页. 当数据库发生宕机时,数据库不需要重做

RDD的容错机制

RDD的容错机制 RDD实现了基于Lineage的容错机制.RDD的转换关系,构成了compute chain,可以把这个compute chain认为是RDD之间演化的Lineage.在部分计算结果丢失时,只需要根据这个Lineage重算即可. 图1中,假如RDD2所在的计算作业先计算的话,那么计算完成后RDD1的结果就会被缓存起来.缓存起来的结果会被后续的计算使用.图中的示意是说RDD1的Partition2缓存丢失.如果现在计算RDD3所在的作业,那么它所依赖的Partition0.1.3

MySQL Checkpoint机制

checkpoint干的事情: 将缓冲池中的脏页刷新回磁盘,不同之处在于每次从哪里取多少脏页刷新到磁盘,以及什么时候触发checkpoint. checkpoint解决的问题: 1.缩短数据库的恢复时间(数据库宕机时,不需要重做所有的日志,因checkpoint之前的页都已经刷新回磁盘啦) 2.缓冲池不够用时,将脏页刷新到磁盘(缓冲池不够用时,根据LRU算会溢出最近最少使用的页,若此页为脏页,需要强制执行checkpoint将脏也刷回磁盘) 3.重做日志不可用时,刷新脏页(采用循环使用的,并不是

Hadoop 两种环境下的checkpoint机制

伪分布式环境: HA环境checkpoint机制 配置了HA的HDFS中,有active和standby namenode两个namenode节点.他们的内存中保存了一样的集群元数据信息,因为standby namenode已经将集群状态存储在内存中了,所以创建检查点checkpoint的过程只需要从内存中生成新的fsimage. 详细过程如下: (standby namenode=SbNN, activenamenode=ANN) 1. SBNN查看是否满足创建检查点的条件: (1) 距离上次

InnoDB存储引擎介绍-(4)Checkpoint机制一

检查点的工作机制: innodb会自动维护一个检查点的机制,叫做 fuzzy checkpointing(当然sharp checkpoint也是检查点之一),fuzzy checkpointing就是将buffer pool当中的数据页信息小批量的刷新到磁盘.但是我们没有必要单批次批次的对buffer pool进行刷新,不然后影响其他正在执行的SQL进程. 在crash recovery期间,MySQL也会记录一次检查点信息到log  file当中去.它会记录数据库检查点发生之前的所有修改数据

sparkRDD:第4节 RDD的依赖关系;第5节 RDD的缓存机制;第6节 DAG的生成

4.      RDD的依赖关系 6.1      RDD的依赖 RDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency). 6.2      窄依赖 窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用 总结:窄依赖我们形象的比喻为独生子女.窄依赖不会产生shuffle,比如说:flatMap/map/filter.... 6.3      宽依赖 宽依赖指的是多个子RDD的Pa

Spark CheckPoint彻底解密(41)

一.Checkpoint到底是什么? 1, Spark在生产环境下经常会面临Tranformations的RDD非常多(例如一个Job中包含1万个RDD)或者具体Tranformation产生的RDD本身计算特别复杂和耗时(例如计算时常超过1个小时),此时我们必须考虑对计算结果数据的持久化: 2, Spark是擅长多步骤迭代,同时擅长基于Job的复用,这个时候如果能够对曾经计算的过程产生的数据进行复用,就可以极大的提升效率: 3, 如果采用persist把数据放在内存中的话,虽然是最快速的但是也

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

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