| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Flink实现Exactly Once -> 正文阅读 |
|
[大数据]Flink实现Exactly Once |
前言Flink通过状态快照实现容错处理: Flink 定期获取所有状态的快照,并将这些快照复制到持久化的位置,例如分布式文件系统。 如果发生故障,Flink 可以恢复应用程序的完整状态并继续处理,就如同没有出现过异常。 Flink 管理的状态存储在?state backend?中。 checkpoint 代码
?一、状态快照 checkpoint????????Checkpoint?– 一种由 Flink 自动执行的快照,其目的是能够从故障中恢复。Flink开启checkpoint可在任务失败或者重启时,重新提交任务指定checkpoint保存外部系统的路径,即可在上次执行的结果上继续执行,数据不需重新开始。 checkpoint的执行:?1、checkpoint是由JobManager定时去执行,flink快照机制并不是在同一时刻所有任务一同执行,而是所有任务在处理完同一数据后,保存自身状态 2、JM向Source Task发送Trigger,Source Task会保存自身状态(记录当前读取数据的偏移量),并在数据流中,插入带有编号的?checkpoint barriers,向下游传递barrier 3、当下游的task接收到barrier时,会保存自身状态(如有上游有多个分区任务,下游task收到上游所有实例的barrier才会做快照),继续向下游传递barrier 4、当所有task完成同一次checkpoint的barrier之后,一次checkpoint完成 5、当快照被持久保存后,JM会删除旧的checkpoint文件 6、当任务状态信息备份完成后,会上报JM,当所有的任务都上报后,完成一次checkpoint 二、端对端确保精确一次 Exactly Once?状态一致性:?
状态一致性分类:?
Exactly Once:Flink 使用了轻量级快照机制--检查点(checkpoint)来保证exactly once语义 1、source端?
2、端对端?
3、sink端?
?两次写入(Two-Phase-Commit,2PC)1、sink端会先将数据写入事务,预提交至外部系统中 2、当sink端读取到上游传递来的barrier,保存自身状态到状态后端后,上报JM(同时会开启一个新的事务,在barrier后的到达的数据,将由新的事务预提交);当所有任务上报后,checkpoint完成,sink端正式提交? 3、若在预提交阶段发生故障,预提交的数据会全部撤销,此时回滚到上次checkpoint,再次处理数据,写入的数据也不会重复 实现exactly once需要配置:1、必须启用checkpoint 2、选择参数EXACTLY_ONCE 3、Kafka中默认为read_uncommitted,即会读取到未提交的数据,所以应将其修改为read_committed 4、Flink的Kafka连接器配置超时时间默认为1小时,Flink集群配置事务超时时间为15分钟,应设置前者小于后者 三、Kafka中数据不丢失? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/23 13:13:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |