SparkStreaming的ck
一个 Streaming Application 往往需要7*24不间断的跑,所以需要有抵御意外的能力(比如机器或者系统挂掉,JVM crash等)。为了让这成为可能,Spark Streaming需要 Checkpoint 足够多信息至一个具有容错设计的存储系统才能让Driver 从失败中恢复。Spark Streaming 会 Checkpoint 两种类型的数据。
Metadata(元数据) Checkpointing - 保存定义了 Streaming 计算逻辑至类似 HDFS 的支持容错的存储系统。用来恢复 Driver,元数据包括:
- 配置 —— 用于创建该 streaming application 的所有配置;
- DStream 操作 —— DStream 一系列的操作;
- 未完成的 batches —— 那些提交了 job 但尚未执行或未完成的 batches。
Data(数据) Checkpointing - 保存已生成的RDD至可靠的存储。这在某些 stateful 转换中是需要的,在这种转换中,生成 RDD 需要依赖前面的 batches,会导致依赖链随着时间而变长。为了避免这种没有尽头的变长,要定期将中间生成的 RDDs 保存到可靠存储来切断依赖链。
总之,Metadata Checkpointing 主要用来恢复 Driver; Data Checkpointing 对于stateful 转换操作是必要的。
- 什么时候该启用 Checkpoint 呢?
满足以下任一条件:
- 使用了有状态的transformation操作——比如updateStateByKey(强制),或者reduceByKeyAndWindow操作(非强制),被使用了,那么Checkpoint目录要求是必须提供的,也就是必须开启Checkpoint机制,从而进行周期性的RDD Checkpoint;
- 希望能从意外中恢复 Driver。
如果 streaming app 没有 stateful 操作,也允许 driver 挂掉后再次重启的进度丢失,就没有启用 Checkpoint的必要了。
- Checkpoint间隔设置
Checkpoint的时间间隔设置方法如下:
dstream.checkpoint(checkpointInterval)
Checkpoint时间间隔设置原则:一般设置为batch时间间隔的5-10倍。
Checkpoint会增加存储开销、增加批次处理时间。当批次间隔较小(如1秒)时,checkpoint可能会减小operation吞吐量;反之,checkpoint时间间隔较大会导致lineage和task数量增长。
SparkStreaming的ck相关推荐
- 大数据技术之Spark(三) SparkStreaming
文章目录 第1章 SparkStreaming 概述 1.1 Spark Streaming 是什么? 1.2 为什么要学习Spark Streaming(特点) 1.3 Spark Streamin ...
- 【大数据开发】SparkStreaming——DStream输入源、原语、SparkStream与Kafka和Redis三者的交互
设置SparkConf的时候不能设置为local,会报错,应当设置成local[N],N>1.这是因为需要一个核接收数据,另一个核处理数据,如果只分配一个线程处理,这个线程会被用来接收数据,就没 ...
- D32 SparkStreaming
一.SparkStreaming概述 Spark Streaming类似于Apache Storm,用于流式数据的处理.根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点. ...
- 2021年大数据Spark(四十三):SparkStreaming整合Kafka 0.10 开发使用
目录 整合Kafka 0-10-开发使用 原理 1.Direct方式 2.简单的并行度1 : 1 API 注意 代码实现-自动提交偏移量到默认主题 代码实现- ...
- 2021年大数据Spark(四十二):SparkStreaming的Kafka快速回顾与整合说明
目录 Kafka快速回顾 消息队列: 发布/订阅模式: Kafka 重要概念: 常用命令 整合说明 两种方式 两个版本API 在实际项目中,无论使用Storm还是SparkStreaming与Flin ...
- 2021年大数据Spark(四十一):SparkStreaming实战案例六 自定义输出 foreachRDD
目录 SparkStreaming实战案例六 自定义输出-foreachRDD 需求 注意: 代码实现 SparkStreaming实战案例六 自定义输出-foreachRDD 需求 对上述案例的结果 ...
- 2021年大数据Spark(三十九):SparkStreaming实战案例四 窗口函数
目录 SparkStreaming实战案例四 窗口函数 需求 代码实现 SparkStreaming实战案例四 窗口函数 需求 使用窗口计算: 每隔5s(滑动间隔)计算最近10s(窗口长度)的数据! ...
- 2021年大数据Spark(三十七):SparkStreaming实战案例二 UpdateStateByKey
目录 SparkStreaming实战案例二 UpdateStateByKey 需求 1.updateStateByKey 2.mapWithState 代码实现 SparkStreaming实战案例 ...
- 2021年大数据Spark(三十六):SparkStreaming实战案例一 WordCount
目录 SparkStreaming实战案例一 WordCount 需求 准备工作 代码实现 第一种方式:构建SparkConf对象 第二种方式:构建SparkContext对象 完整代码如下所示: 应 ...
最新文章
- 使用Microsoft Visual Studio International Pack获得中文字符串的所有拼音组合(处理多音字)...
- 计算机语言mod(m n),关于一段地址对齐的位运算代码的解释
- php cgi路径解析,php.ini中的cgi.fix_pathinfo选项
- 【POJ - 2785】4 Values whose Sum is 0 (二分,折半枚举)
- linux多选项菜单脚本,linux shell 编写菜单脚本事例
- JavaScript为事件处理器传递参数 (转)
- 关于在win8下开发c或者c++时,某些特殊情况
- java键盘钩子_jna test【鼠标 键盘钩子】
- matlab小波滤波详解,基于matlab的振动波形小波分析及小波基础知识学习
- springboot整合mysql
- 系统漏洞利用与提权攻击机场景
- [转贴]民国记者有多牛:揭黑损人骂街是常事
- 通过平面图分析计算机网络,第五人格格里奥的回忆地图平面图 里奥的回忆地图解析...
- NLP创业破局,如何摘取更高处的果实
- 写完的文档有多少个字?字数统计在word哪里
- Nginx的超时keeplive_timeout配置详解
- jmeter 打开报错_Jmeter-打开jmx文件报错
- EPICS数据通过MQTT物联网协议上云
- k-means+matlab 之辣鸡学算法
- 分子对接及结果分析在线工具
热门文章
- Python编程十日(1)算数运算符
- 神经网络和深度学习(二)——一个简单的手写数字分类网络
- 中断原理及WDT驱动编程
- 中文分词好用的pyhanLP包
- 《Hierarchical User Profiling forE-commerce Recommender Systems》原文
- 响铃:抖音的算法,美拍的社区,谁能赢得短视频内容升级战?
- 网络电话通信正在努力适应新发展环境
- 计算机网络原理实践报告--跨国公司,通过运营商网络如何实现总部公司与各分公司之间的网络互通
- 会议交流 | 欢迎注册 CCKS2021 全国知识图谱与语义计算大会!
- C# 将小写数字转换为 一般中文大写数字 和 人民币大写数字