spark从入门到放弃五十四:Spark Streaming(14)checkpoint

2024-08-22 22:18

本文主要是介绍spark从入门到放弃五十四:Spark Streaming(14)checkpoint,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.概述

每一个spark streaming 应用正常来说都要7*24小时运转的,这就是实时计算程序的特点。因为要持续不断的对数据进行计算。因此,对实时计算的要求,应该是必须能够与应用程序逻辑无关的失败,进行容错。
如果要实现这个目标,spark streaming 程序就必须将足够的信息checkpoint 到容错的存储系统上,从而让他能够从失败中进行恢复。有两种数据需要进行checkpoint

2.1元数据checkpoint

将定义流式计算逻辑的信息,保存到容错的存储系统上,比如hdfs,当运行spark streaming 应用程序的Driver 进程所在节点失败时,该信息可以进行恢复。元数据信息包括:
(1).配置信息 –创建spark Streaming 应用程序的配置信息,比如sparkConf 中的信息。
(2)DStream 操作信息–定义Spark Streaming 应用程序的计算逻辑的DStream 操作信息。
(3) 未处理的batch 信息–那些job 数据正在排队,还没有处理的batch 信息。

2.2数据checkpoint

将实时计算过程中产生的RDD 的数据保存到可靠的存储系统中。
对于一些将多个batch的数据进聚合,有状态的transform 操作,这是非常有用的。在这种transform 操作中,生成的RDD 依赖之前的batch 的RDD ,这个会导致随着时间的推移,RDD 的依赖链条会变得越来越长。
要避免依赖链条变得越来越长,导致的一起变得越来越长的失败恢复时间,有状态的transformation 操作执行过程中间产生的RDD 会定期的被checkpoint 到可靠的存储系统上如hdfs ,从而削减RDD 的依赖链条,进而缩短失败恢复时间。
一句话概括一下,元数据checkpoint 主要是为了从driver 中进行恢复,而RDD checkpoing 主要是为了 使用到有状态的transformation 操作时,能够在其生产出的数据丢失时,进行快速的数据恢复。

3.如何启用checkpoint 机制

1.对于有状态的transform 操作,启用checkpoint 机制,定期的将其生产的RDD 数据checkpoint 式比较简单的。
可以通过配置一个容错的,可靠的文件系统比如HDFS 目录,来启用checkpoint 机制,checkpoint 数据就会写入到该目录,使用StreamingContext 的checkpoint() 方法即可,然后就可以放心的使用有状态的transformation 操作可
2.如果为了要从Driver 失败进行恢复,那么启用checkpoint 机制,是比较复杂的需要改写spark Streaming 应用程序。
当应用程序第一次启动的时候 需要创建一个新的Streaming context 并且调用其start 方法进行启动当driver 从失败中恢复过来时,需要从checkpoint 目录中记录的元数据进行恢复,恢复出来一个Streaming context .

欢迎关注,更多福利

这里写图片描述

这篇关于spark从入门到放弃五十四:Spark Streaming(14)checkpoint的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097546

相关文章

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE