IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Flink的问题 -> 正文阅读

[大数据]Flink的问题

flink消费Kafka的数据,怎么保证数据不丢失

上游可以调整偏移量, 下游事务写和幂等写, 中间靠checkpoint

Savepoint和Checkpoint分别是什么?

? ? ? ?Savepoint 是用来为整个流处理应用在某个“时间点”(point-in-time)进行快照生成的功能。该快照包含了数据源读取到的偏移量(offset),输入源的位置信息以及整个应用的状态。借助 分布式快照算法(Chandy-Lamport )的变体,我们可以在应用程序运行中得到某个“时间点”一致的快照。

? ? ? ?Savepoint由一个目录以及一个元数据文件构成。其中目录中通常为一个很大的二进制文件,文件中包含了整个流应用在Savepoint或Checkpoint的状态。另外元数据文件通常相对较小,其中包含了指向Savepoint目录中各个文件的指针。

上面关于Savepoint的介绍与Checkpoint很类似,但是二者还是有一些不同点的。

? ? ? ? 首先Checkpoint 是 Flink 用来从故障中恢复的机制,它快照下了整个应用程序的状态,当然也包括输入源读取到的位点。当应用发生故障时,Flink 将通过从 Checkpoint 加载应用程序状态并从恢复出的历史读取位点继续应用的处理,就像什么事情都没发生一样。

SavePoint和Checkpoint的3个不同点

Savepoint 和 Checkpoint 作为 Apache Flink 中的两个非常独特的两个特性,它们在实现中看起来也很相似,然而二者之间也有不同的地方,主要包含如下3点:

目标上的差异

从概念上讲,Flink 的 Savepoint 和 Checkpoint 的不同之处很像传统数据库中备份与恢复日志之间的区别。Savepoint 的主要目标是充当手动备份、恢复暂停作业的方法。相反,Checkpoint 的主要目标是充当 Flink 中的恢复机制,确保能从潜在的故障中恢复。

实现上的差异

Checkpoint 和 Savepoint 在实现上也有不同。由于Savepoint设计时候更多的关注了应用的可移植性,支持对作业进行修改后状态能保持兼容,对应的,生成的恢复的成本更高;Checkpoint作为一种轻量与快速的机制,它可能利用底层状态后端的不同功能尽可能快速的恢复数据,如基于RocksDb状态后端的增量Checkpoint,可以极大加速Checkpoint过程,这种设计使得Checkpoint机制变得更加清量。

生命周期不同

Savepoint 是需要用户手动进行管理(调度、创建、删除)的。相反,Checkpoint 是自动和定期的,它们由 Flink 自动地周期性地创建和删除,无需用户的交互。

如何使用SavePoint

虽然流式应用处理的数据是持续地生成的,但是存在某些场景需要重新处理之前已经处理过的数据, 此时Savepoint 便派上了用场,它可以在以下几种情况中使用:

  • 部署流应用的一个新版本,如新功能、修复Bug或者一个更好的机器学习模型。
  • 引入 A/B 测试,使用相同的源数据测试程序的不同版本,从同一时间点开始测试而不牺牲先前的状态。
  • 在进行应用程序资源扩容或者缩减时使用。
  • 流应用程序到进行 Flink 版本切换或者集群迁移时。

结论

Checkpoint 和 Savepoint 是 Flink 中两个不同的功能,它们满足了不同场景下的需求以确保一致性、容错性、作业升级、BUG 修复、迁移、A/B测试等。这两个功能结合使用可以确保应用程序的状态在不同的场景和环境中保持不变。

原文:?https://mp.weixin.qq.com/s/0VEaLg_iBR57OI35OSqwrA

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:48:25  更:2021-07-30 12:49:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 13:33:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码