一个 Streaming Application 往往需要7*24不间断的跑,所以需要有抵御意外的能力(比如机器或者系统挂掉,JVM crash等)。为了让这成为可能,Spark Streaming需要 Checkpoint 足够多信息至一个具有容错设计的存储系统才能让Driver 从失败中恢复。Spark Streaming 会 Checkpoint 两种类型的数据。

Metadata(元数据) Checkpointing - 保存定义了 Streaming 计算逻辑至类似 HDFS 的支持容错的存储系统。用来恢复 Driver,元数据包括:

  1. 配置 —— 用于创建该 streaming application 的所有配置;
  2. DStream 操作 —— DStream 一系列的操作;
  3. 未完成的 batches —— 那些提交了 job 但尚未执行或未完成的 batches。

Data(数据) Checkpointing - 保存已生成的RDD至可靠的存储。这在某些 stateful 转换中是需要的,在这种转换中,生成 RDD 需要依赖前面的 batches,会导致依赖链随着时间而变长。为了避免这种没有尽头的变长,要定期将中间生成的 RDDs 保存到可靠存储来切断依赖链。

总之,Metadata Checkpointing 主要用来恢复 Driver; Data Checkpointing 对于stateful 转换操作是必要的。

  1. 什么时候该启用 Checkpoint 呢?

满足以下任一条件:

  1. 使用了有状态的transformation操作——比如updateStateByKey(强制),或者reduceByKeyAndWindow操作(非强制),被使用了,那么Checkpoint目录要求是必须提供的,也就是必须开启Checkpoint机制,从而进行周期性的RDD Checkpoint;
  2. 希望能从意外中恢复 Driver。

如果 streaming app 没有 stateful 操作,也允许 driver 挂掉后再次重启的进度丢失,就没有启用 Checkpoint的必要了。

  1. Checkpoint间隔设置

Checkpoint的时间间隔设置方法如下:

dstream.checkpoint(checkpointInterval)

Checkpoint时间间隔设置原则:一般设置为batch时间间隔的5-10倍。

Checkpoint会增加存储开销、增加批次处理时间。当批次间隔较小(如1秒)时,checkpoint可能会减小operation吞吐量;反之,checkpoint时间间隔较大会导致lineage和task数量增长。

SparkStreaming的ck相关推荐

  1. 大数据技术之Spark(三) SparkStreaming

    文章目录 第1章 SparkStreaming 概述 1.1 Spark Streaming 是什么? 1.2 为什么要学习Spark Streaming(特点) 1.3 Spark Streamin ...

  2. 【大数据开发】SparkStreaming——DStream输入源、原语、SparkStream与Kafka和Redis三者的交互

    设置SparkConf的时候不能设置为local,会报错,应当设置成local[N],N>1.这是因为需要一个核接收数据,另一个核处理数据,如果只分配一个线程处理,这个线程会被用来接收数据,就没 ...

  3. D32 SparkStreaming

    一.SparkStreaming概述 Spark Streaming类似于Apache Storm,用于流式数据的处理.根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点. ...

  4. 2021年大数据Spark(四十三):SparkStreaming整合Kafka 0.10 开发使用

    目录 整合Kafka 0-10-开发使用 原理 1.Direct方式 2.简单的并行度1 : 1 ​​​​​​​API 注意 ​​​​​​​代码实现-自动提交偏移量到默认主题 ​​​​​​​代码实现- ...

  5. 2021年大数据Spark(四十二):SparkStreaming的Kafka快速回顾与整合说明

    目录 Kafka快速回顾 消息队列: 发布/订阅模式: Kafka 重要概念: 常用命令 整合说明 两种方式 两个版本API 在实际项目中,无论使用Storm还是SparkStreaming与Flin ...

  6. 2021年大数据Spark(四十一):SparkStreaming实战案例六 自定义输出 foreachRDD

    目录 SparkStreaming实战案例六 自定义输出-foreachRDD 需求 注意: 代码实现 SparkStreaming实战案例六 自定义输出-foreachRDD 需求 对上述案例的结果 ...

  7. 2021年大数据Spark(三十九):SparkStreaming实战案例四 窗口函数

    目录 SparkStreaming实战案例四 窗口函数 需求 代码实现 SparkStreaming实战案例四 窗口函数 需求 使用窗口计算: 每隔5s(滑动间隔)计算最近10s(窗口长度)的数据! ...

  8. 2021年大数据Spark(三十七):SparkStreaming实战案例二 UpdateStateByKey

    目录 SparkStreaming实战案例二 UpdateStateByKey 需求 1.updateStateByKey 2.mapWithState 代码实现 SparkStreaming实战案例 ...

  9. 2021年大数据Spark(三十六):SparkStreaming实战案例一 WordCount

    目录 SparkStreaming实战案例一 WordCount 需求 准备工作 代码实现 第一种方式:构建SparkConf对象 第二种方式:构建SparkContext对象 完整代码如下所示: 应 ...

最新文章

  1. 使用Microsoft Visual Studio International Pack获得中文字符串的所有拼音组合(处理多音字)...
  2. 计算机语言mod(m n),关于一段地址对齐的位运算代码的解释
  3. php cgi路径解析,php.ini中的cgi.fix_pathinfo选项
  4. 【POJ - 2785】4 Values whose Sum is 0 (二分,折半枚举)
  5. linux多选项菜单脚本,linux shell 编写菜单脚本事例
  6. JavaScript为事件处理器传递参数 (转)
  7. 关于在win8下开发c或者c++时,某些特殊情况
  8. java键盘钩子_jna test【鼠标 键盘钩子】
  9. matlab小波滤波详解,基于matlab的振动波形小波分析及小波基础知识学习
  10. springboot整合mysql
  11. 系统漏洞利用与提权攻击机场景
  12. [转贴]民国记者有多牛:揭黑损人骂街是常事
  13. 通过平面图分析计算机网络,第五人格格里奥的回忆地图平面图 里奥的回忆地图解析...
  14. NLP创业破局,如何摘取更高处的果实
  15. 写完的文档有多少个字?字数统计在word哪里
  16. Nginx的超时keeplive_timeout配置详解
  17. jmeter 打开报错_Jmeter-打开jmx文件报错
  18. EPICS数据通过MQTT物联网协议上云
  19. k-means+matlab 之辣鸡学算法
  20. 分子对接及结果分析在线工具

热门文章

  1. Python编程十日(1)算数运算符
  2. 神经网络和深度学习(二)——一个简单的手写数字分类网络
  3. 中断原理及WDT驱动编程
  4. 中文分词好用的pyhanLP包
  5. 《Hierarchical User Profiling forE-commerce Recommender Systems》原文
  6. 响铃:抖音的算法,美拍的社区,谁能赢得短视频内容升级战?
  7. 网络电话通信正在努力适应新发展环境
  8. 计算机网络原理实践报告--跨国公司,通过运营商网络如何实现总部公司与各分公司之间的网络互通
  9. 会议交流 | 欢迎注册 CCKS2021 全国知识图谱与语义计算大会!
  10. C# 将小写数字转换为 一般中文大写数字 和 人民币大写数字