zoukankan      html  css  js  c++  java
  • Spark Checkpoint 概述

    有时候,Transformation 的 RDD 非常多或者具体 Transformation 产生的 RDD 本身计算特别复杂和耗时,此时我们必须考虑对计算结果数据进行持久化。与 persist 不同,persist 是优先将结果放入内存,内存不够的情况下,会放在磁盘。无论是放内存还是磁盘,都是不可靠的。Checkpoint 的产生就是为了相对而言更加可靠的持久化数据。

    1. Checkpoint 可以指定把数据放在本地并且是多副本的方式,但是正常的生产环境下是放在 HDFS 上的,这就保证了中间计算结果持久化的高可靠性。

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

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

    4. Checkpoint 改变了 RDD 的 Lineage。

    5. checkpoint 是另外启动一个 Job,并重新计算。而不是复用计算完的结果。因此建议在 checkpoint 之前进行 cache 操作。

  • 相关阅读:
    Android高性能ORM数据库DBFlow入门
    PHP数据库操作
    Smarty模板技术学习(二)
    Smarty模板技术学习
    微信开发简单实例
    支持IE6只是其一!Web开发的十大噩梦
    前端构建工具发展及其比较
    React通过redux-persist持久化数据存储
    vue中Axios的封装和API接口的管理
    yarn使用教程
  • 原文地址:https://www.cnblogs.com/langfanyun/p/8284547.html
Copyright © 2011-2022 走看看