zoukankan      html  css  js  c++  java
  • Spark checkpoint机制简述

    本文主要简述spark checkpoint机制,快速把握checkpoint机制的来龙去脉,至于源码可以参考我的下一篇文章。

    1、Spark core的checkpoint

    1)为什么checkpoint?

    分布式计算中难免因为网络,存储等原因出现计算失败的情况,RDD中的lineage信息常用来在task失败后重计算使用,为了防止计算失败后从头开始计算造成的大量开销,RDD会checkpoint计算过程的信息,这样作业失败后从checkpoing点重新计算即可,提高效率。

    2)什么时候写checkpoint数据?

    • 当RDD的action算子触发计算结束后会执行checkpoint。
    • 在spark streaming中每generate一个batch的RDD也会触发checkpoint操作。

    3)什么时候读checkpoint数据?

    task计算失败的时候会从checkpoint读取数据进行计算。

    4)checkpoint具体实现有哪些?

    其实现分两种:

    • LocalRDDCheckpointData:临时存储在本地executor的磁盘和内存上(不能仅使用内存,因为内存的eviction机制可能造成data loss)。该实现的特点是比较快,适合lineage信息需要经常被删除的场景(如GraphX),可容忍executor挂掉。
    • ReliableRDDCheckpointData:存储在外部可靠存储(如hdfs),可以达到容忍driver 挂掉情况。虽然效率没有存储本地高,但是容错级别最好。 
      如果代码中没有设置checkpoint,则使用local的checkpoint模式,如果设置路径,则使用reliable的checkpoint模式

    2、spark streaming的checkpoint

    spark streaming有一个单独的线程CheckpointWriteHandler,每generate一个batch interval的RDD数据都会触发checkpoint操作。

    对于kafka的DirectKafkaInputDStreamCheckpointData,实质是重写DStreamCheckpointData的update和restore方法,这样checkpoint的数据就是topic,partition,fromOffset和untilOffset。

  • 相关阅读:
    494 Target Sum 目标和
    493 Reverse Pairs 翻转对
    492 Construct the Rectangle 构建矩形
    491 Increasing Subsequences 递增子序列
    488 Zuma Game 祖玛游戏
    486 Predict the Winner 预测赢家
    485 Max Consecutive Ones 最大连续1的个数
    483 Smallest Good Base
    Django Form组件
    Django Auth组件
  • 原文地址:https://www.cnblogs.com/itboys/p/9183809.html
Copyright © 2011-2022 走看看