Spark修炼之道(进阶篇)——Spark入门到精通:第十四节 Spark Streaming 缓存、Checkpoint机制

  • 时间:
  • 浏览:1
  • 来源:大发5分快乐8_极速5分11选5

作者:周志湖

微信号:zhouzhihubeyond

程序来源:https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/streaming/RecoverableNetworkWordCount.scala

进行了适量修改

(2)Data checkpointing

将生成的RDD保存到内部内部结构可靠的存储当中,对于并且 数据跨度为多个bactch的有情况汇报tranformation操作来说,checkpoint非常有必要,原因在那此transformation操作生成的RDD对前一RDD有依赖,随着时间的增加,依赖链原因会非常长,checkpoint机制要能切断依赖链,将上面的RDD周期性地checkpoint到可靠存储当中,从而在出错时要能直接从checkpoint点恢复。

从上面的方法来看,它最返回的是另一有有一个多ReducedWindowedDStream对象,跳到该类的源码中要能看了在其主构造函数中暗含下面两段代码:

通过上面的代码亲戚朋友 要能看了,通过窗口操作产生的DStream不时需开发人员手动去调用persist方法,Spark会自动帮亲戚朋友 将数据缓存当内存当中。同一般的RDD同类于,DStream支持的persisit级别为:

通过前面一系列的课程介绍,亲戚朋友 知道DStream是由一系列的RDD构成的,它同一般的RDD一样,也要能将流式数据持久化到内容当中,采用的同样是persisit方法,调用该方法后DStream将持久化所有的RDD数据。这对于并且 时需重复计算多次或数据时需反复被使用的DStream有点硬有效。像reduceByWindow、reduceByKeyAndWindow等基于窗口操作的方法,它们默认都会有persisit操作的。reduceByKeyAndWindow方法源码具体如下:

具体来说,metadata checkpointing主要还是从drvier失败中恢复,而Data Checkpoing用于对有情况汇报的transformation操作进行checkpointing

通过前期对Spark Streaming的理解,亲戚朋友 知道,Spark Streaming程序运行原因不手动停止,则将有有一个多劲运行下去,在实际中程序运行一般是24小时*三天不间断运行的,并且 Streaming时需对诸如系统错误、JVM出错等与程序逻辑无关的错误(failures )具体很强的弹性,具备一定的非程序运行出错的容错性。Spark Streaming的Checkpoint机制便是为此设计的,它将足够多的信息checkpoint到并且 具备容错性的存储系统如HDFS上,以便出错时要能越来太快了 了 恢复。有这俩 数据要能chekpoint:

首次运行时:

输入参数配置如下:

(1)Metadata checkpointing

将流式计算的信息保存到具备容错性的存储上如HDFS,Metadata Checkpointing适用于当streaming程序运行Driver所在的节点出错时要能恢复,元数据包括:

Configuration(配置信息) - 创建streaming程序运行的配置信息

DStream operations - 在streaming程序运行中定义的DStreaming操作

Incomplete batches - 在列队中这么 出理 完的作业

运行情况汇报图如下:

Checkpointing具体的使用方法时通过下列方法:

手动将程序停止,并且 重新运行

本节内容基于官方文档:http://spark.apache.org/docs/latest/streaming-programming-guide.html