加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Flink基础

(2022-08-03 14:11:22)
分类: 大数据

vim conf/flink-conf.yaml     rest.bind-address  绑定地址



Flink源码分析



作者:知乎用户
链接:https://www.zhihu.com/question/263966662/answer/382028202
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Flink提供了可以恢复数据流应用的到一致状态的容错机制,确保在发生故障,程序的每一条记录只会作用于状态一次(exactly-once).

这套容错机制通过持续创建分布式数据流的快照来实现,对于状态占用空间小的流应用。这些快照非常轻量化。可以高频的创建对流的性能影响非常小。这个状态保存在一个可配置的环境。

当遇到故障时,flink会停止分布式数据流。系统会重启所有的operator,重至到最近成功的checkpoint。输入重置相应的状态快照位置,来保证重置位置的正确性。


Flink分布式快照的核心之一是数据栅栏,这些barrier被插入数据流,作为数据流数据的一部分,barrier不会干扰正常的数据流,一个barrier会把数据分割成两个部分,一部分进入当前快照,另一部分进入下一个快照。每个barrier都带有快照的id,并且 barrier 之前的数据都进入了此快照。多个barrier会出现数据流中,也就是会产生多个快照。


当barrier在source源头插入时,当快照 n的barrier插入时,系统就会记录当前快照的位置。然后barrier接着往下流到,但一个operator从输入流接收到所有快照 n的标示的barrier时,他会向所有的输出流插入一个标示为快照 n 的barrier.当sink operator接受到所有的快照 n,他会向the checkpoint coordinator 确认 snapshot n 已完成。当所有的sink都确认这个快照时,就完成。

0

阅读 收藏 喜欢 打印举报/Report
前一篇:JAVA基础#
后一篇:理解FlatMap
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有