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

相关文章

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

史上最全MybatisPlus从入门到精通

《史上最全MybatisPlus从入门到精通》MyBatis-Plus是MyBatis增强工具,简化开发并提升效率,支持自动映射表名/字段与实体类,提供条件构造器、多种查询方式(等值/范围/模糊/分页... 目录1.简介2.基础篇2.1.通用mapper接口操作2.2.通用service接口操作3.进阶篇3

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

Python实现Word转PDF全攻略(从入门到实战)

《Python实现Word转PDF全攻略(从入门到实战)》在数字化办公场景中,Word文档的跨平台兼容性始终是个难题,而PDF格式凭借所见即所得的特性,已成为文档分发和归档的标准格式,下面小编就来和大... 目录一、为什么需要python处理Word转PDF?二、主流转换方案对比三、五套实战方案详解方案1:

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 核心功能从零开始学习