
Flink原理解析
文章平均质量分 92
1、Flink编程模型
2、Flink作业转换
3、Flink任务调度
4、Flink消息乱序
5、Flink窗口机制
6、Flink容错机制
7、Flink消息可靠性
8、Flink背压机制
9、Flink资源管理
10、Flink指标监控
11、Flink连接器
12、Flink数据类型与序列化
江城子v3
当你的才华不足以支撑你的野心时,就要静下心来努力学习!
展开
-
1、Flink编程模型 - ing
Flink编程模型原创 2020-07-18 16:11:10 · 137 阅读 · 0 评论 -
2、Flink作业转换-StreamGraph
在编写 Flink 程序的时候,核心的要点是构造出数据处理的拓扑结构,即任务执行逻辑的 DAG。对于这个DAG,Flink 会在客户端构建出对应的 StreamGraph。原创 2020-07-18 17:12:43 · 507 阅读 · 1 评论 -
2、Flink作业转换-JobGraph
Flink客户端在构建出StreamGrap后,会通过优化得到另一个执行计划图 - JobGraph,并将JobGraph提交至JobManager。JobManager根据任务所需资源将其转化成具有并行性质的ExecutionGraph,根据ExecutionGraph进行任务调度。原创 2020-07-23 19:35:18 · 587 阅读 · 0 评论 -
2、Flink作业转换-ExecutionGraph
Dispatcher接收到Client提交的JobGraph形式的Flink Job,会启动一个JobManager将JobGraph转换映射为一个ExecutionGraph,然后根据ExecutionGraph将作业调度起来。原创 2020-07-24 00:18:03 · 414 阅读 · 0 评论 -
3、Flink作业调度 - ing
ExecutionGraph在创建JobMaster时完成了构建,之后就可以由JobMaster进行调度执行,主要包括slot的申请和task的部署。原创 2020-07-18 17:13:38 · 166 阅读 · 0 评论 -
4、Flink消息乱序-Time与Watermark
实时系统中,由于各种原因造成的延时会导致某些消息发到flink的时间延时于事件产生的时间。如果基于event time构建window,对于late element我们又不能无限期的等下去,必须要有个机制来保证一个特定的时间后,必须触发window去进行计算了。这个特别的机制,就是watermark。原创 2020-07-18 17:14:27 · 568 阅读 · 0 评论 -
4、Flink消息乱序-EventTime常见问题
Flink使用watermark来衡量当前数据进度,在数据流中随着数据一起传输,当到watermark达用户设定的允许延时时间,就会触发计算。但是在使用EventTime的语义中,会出现一些不可预知的问题。原创 2020-07-19 19:43:07 · 427 阅读 · 0 评论 -
5、Flink窗口机制
Window是处理无界流的核心算子,可以将数据流分为固定大小的buckets(即按照固定时间或长度将数据流切分成不同的窗口),在每一个窗口上,用户可以使用一些计算函数对窗口内的数据进行处理,从而得到一定时间范围内的统计结果。原创 2020-07-18 17:15:30 · 529 阅读 · 0 评论 -
6、Flink容错机制-概览
作为分布式系统,尤其是对延迟敏感的实时计算引擎,Apache Flink 需要有强大的容错机制,以确保在出现机器故障或网络分区等不可预知的问题时可以快速自动恢复并依旧能产生准确的计算结果。原创 2020-07-18 17:16:15 · 334 阅读 · 0 评论 -
6、Flink容错机制-Checkpoint
Checkpoint是Flink容错的核心机制,它可以定期地将各个Operator处理的数据进行快照存储( Snapshot )。如果Flink作业出现异常进而导致作业失败,则可以重新从这些快照中快速恢复。原创 2020-07-19 09:10:30 · 679 阅读 · 0 评论 -
7、Flink消息可靠性
Flink 作为实时计算引擎,在实际场景业务会涉及到很多不同组件,由于组件特性和定位的不同,Flink 并不是对所有组件都支持 exactly-once,而且不同组件实现 exactly-once 的方法也有所差异,有些实现或许会带来副作用或者用法上的局限性,因此深入了解 Flink exactly-once 的实现机制对于设计稳定可靠的架构有十分重要的意义。原创 2020-07-18 17:17:30 · 1006 阅读 · 0 评论 -
8、Flink背压机制
Back Pressure是流处理系统中,非常经典而常见的问题,它是让流系统对压力变化能够呈现良好抗压性的关键点所在。各个开源实时处理系统,在中后期都开始有对背压机制有完善的考虑和设计,基本原理一致,但是实现方式又依赖于具体系统而各有千秋。原创 2020-07-18 17:18:11 · 961 阅读 · 0 评论 -
9、Flink资源管理
实时计算不同于离线计算,它的任务都是并行的,启动就会一直占用集群资源,如果资源设置过多会造成极大的浪费,设置过少任务会不断发生failover。这里的资源主要指的是内存资源,尤其是对于容器环境,内存的设置极为重要,否则会被频繁的kill。原创 2020-07-18 17:18:44 · 111 阅读 · 0 评论 -
10、Flink指标监控
Flink metrics是Flink公开的一个度量系统,允许收集flink程序的公开指标到外部系统,也可以自定义指标通过metric收集,实际开发时经常需要通过metric查看当前程序的运行状况。原创 2020-07-18 17:19:45 · 2249 阅读 · 0 评论 -
11、Flink连接器
Flink本身提供了很多访问其他数据源的连接器,使得访问其他第三方数据源变得简单高效。此外,用户也可按需自行扩展Source和Sink来对接各种数据系统。原创 2020-07-25 20:34:57 · 555 阅读 · 0 评论 -
12、Flink数据类型和序列化
Java生态圈中有许多序列化框架,如Java serialization, Kryo, Apache Avro 等。然而 Flink有自己定制的序列化框架,这样能够对类型信息了解越多,也就可以在早期完成类型检查,更好的选取序列化方式进行数据布局,节省数据的存储空间,直接操作二进制数据。原创 2020-08-09 09:05:18 · 390 阅读 · 0 评论 -
13、Flink Join原理
不同于传统数据库或批处理场景,Streaming中两个数据流的关联查询主要面临如下两个问题:数据流是无限的,缓存数据对 long-running 的任务而言会带来较高的存储和查询压力;两侧数据流中消息到达的时间存在不一致的情况,可能造成关联结果的缺失。原创 2020-08-09 18:16:09 · 430 阅读 · 0 评论 -
14、Flink SQL-内部执行流程 - ing
14、Flink SQL-执行流程原创 2020-08-15 19:40:13 · 257 阅读 · 0 评论 -
14、Flink SQL-内部执行流程 - ing
Flink SQL-内部执行流程原创 2020-08-16 09:25:35 · 208 阅读 · 0 评论 -
15、Flink CEP - ing
Flink CEP复杂事件处理原创 2020-08-16 10:21:46 · 145 阅读 · 0 评论