`

[spark-src-core] 6. checkpoint in spark

 
阅读更多

   same as others big data technology,CheckPoint is a well-knowed solution to keep data a snapshot for speeduping failovers,ie. restores to most recent checkpoint state of data ,so u will not need to recomputate the  rdd against the job.

  in fact,the checkpoint op will cut down the relationships of all parent rdds.so the current rdd will be the last rdd of data line,and it will be derived by CheckpointRDD to achieve this goal.moreover,CheckpointRDDData is a other wrapper of CheckpointRDD.

 

1.how to

  in spark,the checkpoint version is done by below steps(spark 1.4.1):

  

a. setup checkpoint dir by SparkContext.setupCheckpointDir(xx)
b. snapshot a data state of timeline:rdd.checkpoint()
c. do real checkpoint op at the last of a job(by default)

  now lets detail more the steps respectively.

   in the step 'b',the src is implemented by below codepath:

 /**
   * Mark this RDD for checkpointing. It will be saved to a file inside the checkpoint
   * directory set with SparkContext.setCheckpointDir() and all references to its parent
   * RDDs will be removed. This function must be called before any job has been
   * executed on this RDD. It is strongly recommended that this RDD is persisted in
   * memory, otherwise saving it on a file will require recomputation.-cmp RDDCheckpointData#doCheckpoint()
   */
  def checkpoint() {
    if (context.checkpointDir.isEmpty) {
      throw new SparkException("Checkpoint directory has not been set in the SparkContext")
    } else if (checkpointData.isEmpty) {
      checkpointData = Some(new RDDCheckpointData(this))
      checkpointData.get.markForCheckpoint()
    }
  }

   in the comment,u will curious about :why its necessary to persist the rdd,and to memory?

   by diving into the src we know that the checkpoint op is really a job to run one more time on this rdd to save the result to file,so u will do one more computation if this rdd is not persisted.

  on the other hand,why this rdd is recommanded to save in memory but disk? in fact,it's a little bit of differencs between the data saved in memory and file(maybe data format is),therefor,i think the author does not emphasize where to persist but the op of 'persist'.

  

2.FAQ

 

a.how to use checkpoint to restore data

  from the StreamContext,we know that a func named 'getOrCreate(...)' is there for using the specified checkpoint dir defined before .so the snapshot data will readin rdd if any.

 

b.why not to save computated results when the rdd is run in first time

   hm...no doubt,the real meaning of checkpont op is a second same job run on thie rdd.so why not to save ths results to file simetaneously at the first time?

  first,there is only one anomyous function only defined in any runJob(..),thereby no more param can be accpted besides the user function .

  second,the user function divided by the checkpoint save-op is more clearly to debug ,mantain etc.

 

 

分享到:
评论

相关推荐

    Spark-2.3.1源码解读

    Spark-2.3.1源码解读。 Spark Core源码阅读 Spark Context 阅读要点 Spark的缓存,变量,shuffle数据等清理及机制 Spark-submit关于参数及部署模式的部分解析 GroupByKey VS ReduceByKey OrderedRDDFunctions...

    Python3实战Spark大数据分析及调度-第7章 Spark Core调优.zip

    在本章"Python3实战Spark大数据分析及调度-第7章 Spark Core调优"中,我们将深入探讨如何优化Apache Spark的核心性能,以便更高效地处理大规模数据。Spark Core是Spark框架的基础,它提供了分布式任务调度、内存管理...

    实时指标计算引擎-Spark-Part_1_杨鑫_2019-12-19.pptx

    - **统一API**:Spark Streaming与Spark Core共享相同的API,这意味着开发者可以在同一应用程序中混合使用批处理和流处理逻辑。 - **容错性**:通过checkpoint机制确保在发生故障时能够自动恢复。 - **窗口处理**:...

    spark yarn模式的搭建.docx

    2. 修改 `conf/spark-defaults.conf`,设置 Spark 在 YARN 上运行的相关参数,如 `spark.master` 设为 `yarn`,`spark.executor.instances` 表示执行器实例数量等。 3. 修改 `conf/spark-env.sh`,设置环境变量,如 ...

    Spark大数据技术与应用教学大纲.pdf

    - Spark的生态系统:包括SparkCore、SparkStreaming、SparkSQL、DataFrame和GraphX等组件。 - Spark架构与原理:深入理解Spark的分布式计算模型和任务调度机制。 2. Spark环境搭建: - 准备工作:确保硬件和软件...

    基于Apache Spark的Scala大数据处理设计源码

    本源码为基于Apache Spark的Scala大数据处理设计,共包含191个文件,其中crc文件56个,class文件39个,scala文件20个...该项目使用了spark-core, spark-sql, spark-streaming和spark-内核,适合用于大数据处理和分析。

    SparkStreaming之滑动窗口的实现.zip_Spark!_spark stream 窗口_spark streamin

    Spark Streaming构建在Spark Core之上,利用Spark的快速批处理能力来处理连续的数据流。本资料主要关注的是Spark Streaming中的滑动窗口(Sliding Window)机制,这是实现时间窗口操作的关键概念,对于理解和应用...

    Spark的checkpoint源码讲解

    对于 SparkCore 则适合那些计算链条超级长或者计算耗时的关键点进行 Checkpoint,便于故障恢复。Checkpoint 和 persist 从根本上不一样:Checkpoint 会将 RDD 数据写到 HDFS 这种安全的文件系统里,并且抛弃了 RDD ...

    【SparkCore篇05】RDD缓存和checkpoint1

    本篇文章主要探讨Spark中的RDD缓存和checkpoint机制。 首先,RDD缓存是Spark提升性能的关键特性。通过调用`persist()`或`cache()`方法,我们可以将一个RDD的计算结果存储在内存中,以便后续的操作可以快速访问,...

    spark Streaming原理和实战

    - `map`, `flatMap`, `filter`, `count`, `reduce`等,这些操作与Spark Core中的RDD相似。 - `groupByKey`, `reduceByKey`, `sortByKey`, `join`等高级操作也支持。 - **带状态的转换操作**: - `...

    Spark分布式内存计算框架视频教程

    第二章、SparkCore 模块 1.RDD 概念及特性 2.RDD 创建 3.RDD 函数及使用 4.RDD 持久化 5.案例:SogouQ日志分析 6.RDD Checkpoint 7.外部数据源(HBase和MySQL) 8.广播变量和累加器 9.Spark 内核调度 10.Spark 并行...

    基于scala语言的spark操作,包含连接操作mysql,连接hdfs.zip

    Spark 的核心组件包括 Spark Core、Spark SQL、Spark Streaming、MLlib(机器学习库)和 GraphX。 **3. Spark Shell 与 Scala 交互** Spark 提供了一个交互式的 Spark Shell,允许开发者使用 Scala 语言直接在...

    Spark知识体系吐血总结【无水印版】.pdf

    6. **Spark SQL** - **数据分析方式**:Spark SQL引入DataFrame和Dataset,提供了SQL接口和DataFrame API,实现了SQL查询和面向对象编程的融合。 - **Hive兼容**:Spark SQL可直接与Hive Metastore集成,支持Hive...

    Apache Spark的设计与实现 PDF中文版

    由于技术水平、实验条件、经验等限制,当前只讨论 Spark core standalone 版本中的核心功能,而不是全部功能。诚邀各位小伙伴们加入进来,丰富和完善文档。 好久没有写这么完整的文档了,上次写还是三年前在学 Ng ...

    SparkStreaming与Stom比较

    通过集成Spark Core、Spark SQL等工具,可以构建出高度可扩展且灵活的数据处理系统。 #### 二、优劣分析 **Storm** 和 **Spark Streaming** 在性能和技术特性上有明显的差异: 1. **实时计算模型**:Storm采用的...

    Spark Core 应用解析

    SparkCore的实例练习是学习的关键,通过以下三个实例,你可以深入理解RDD的实际应用: 1. **计算独立IP数**:这通常涉及过滤和计数操作,通过RDD的filter找出独立IP,再用count统计总数。 2. **统计每个视频独立IP数...

    大数据方向面试题大全.pdf

    12. Spark有哪些组件:Spark包括Spark Core、Spark SQL、Spark Streaming、MLlib和GraphX。 13. Spark工作机制:Spark工作机制基于内存计算,比传统的MapReduce处理速度更快。 14. Spark工作流程:Spark作业从创建...

    基于Scala的Spark_Core、Spark_SQL和Spark_Streaming设计源码

    本项目基于Scala开发,包含148个文件,包括Scala源代码、CRC校验文件、TXT文本文件、以及多个...系统实现了基于Scala的Spark_Core、Spark_SQL和Spark_Streaming功能,界面友好,功能完善,适合用于大数据处理和分析。

    《ApacheSpark设计与实现》.zip

    由于技术水平、实验条件、经验等限制,当前只讨论 Spark core standalone 版本中的核心功能,而不是全部功能。诚邀各位小伙伴们加入进来,丰富和完善文档。关于学术方面的一些讨论可以参阅相关的论文以及 Matei 的...

    hadoop 分布式集群搭建

    - 此外,Hadoop集群搭建还涉及到了其他组件的安装,例如Hive、HBase、Spark、MongoDB等,它们各自有不同的安装步骤和配置需求。 2. Hadoop集群配置文件修改: - 核心配置文件core-site.xml:涉及到Hadoop临时文件...

Global site tag (gtag.js) - Google Analytics