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 Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非

MySQL入门到精通

一、创建数据库 CREATE DATABASE 数据库名称; 如果数据库存在,则会提示报错。 二、选择数据库 USE 数据库名称; 三、创建数据表 CREATE TABLE 数据表名称; 四、MySQL数据类型 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串类型 4.1 数值类型 数值类型 类型大小用途INT4Bytes整数值FLOAT4By