Spark的checkpoint源码讲解
一、Checkpoint相关源码分为四个部分 1、Checkpoint的基本使用:spark_core & spark_streaming 2、初始化的源码 3、Checkpoint的job生成及执行的过程 4、读Checkpoint的过程 二、Checkpoint的基本使用 Checkpoint可以是还原药水。辅助Spark应用从故障中恢复。SparkStreaming宕机恢复,适合调度器有自动重试功能的。 对于 SparkCore 则适合那些计算链条超级长或者计算耗时的 关键点进行 Checkpoint , 便于故障恢复 。 Checkpoint和persist从根本上是不一样的: 1、Cache or persist: Cache or persist保存了RDD的血统关系,假如有部分cache的数据丢失可以根据血缘关系重新生成。 2、Checkpoint 会将RDD数据写到hdfs这种安全的文件系统里面,并且抛弃了RDD血缘关系的记录。即使persist存储到了磁盘里面,在driver停掉之后会被删除,而checkpoint可以被下次启动使用。 Checkpoint基本使用 对于spark_streaming的checkpoint: spark streaming有一个单独的线程CheckpointWriteHandler