1. 学习 flink 的原因
早在 18 年时,我便听说了
Flink
由于我平时主要从事业务开发,尚未系统学习
Flink
因此,我们规划了如下的系统架构:
可以看出,业务数据库与数据分析系统已被分离,这样可以避免对核心业务的影响。数据分析的结果存储在线下备份库中,这样即使查询大量分析结果,也不会影响到核心业务。
在数据处理方面,我们选择了
Flink
官网虽然有中文版的文档,但翻译并不完全,经常需要跳转到英文博文。这里推荐一个国内网站 https://www.php.cn/link/7da66e82dc1f8024527341be2df86b9f。
基础语义
基础语义非常重要,高层语法都是基于基础语义构建的,所以需要对它们有所了解。我推荐
ververica
从上图可以看出,数据流分为有界(bounded)和无界(unbounded)两种。有界数据流大小固定,计算最终会完成并结束;无界数据流的数据会随着时间推移持续增加,计算会持续进行且没有结束的状态。
数据流还具有实时和历史记录的属性。实时处理是数据一生成就立即处理;如果时效性要求不高,可以在凌晨统计前一天的完整数据,将数据流持久化到存储系统中,然后进行批处理。
状态是计算过程中保存的数据信息,在容错恢复和
Checkpoint
Exactly-once
Exactly-once

Flink
事件时间
处理时间
摄入时间
Flink
三个时间的具体位置如上图所示,后续会详细讲解。
从上到下分为三层:
SQL/Table API
DataStream API
ProcessFunction
API
SQL
SQL API
反之,
ProcessFunction
API
通常,我们最常用的是中间层的
DataStream API
架构介绍来源于 https://www.php.cn/link/45402d4ff8981a182dcfc4813600961f
1. 有界和无界数据流
Flink
Window
API
Flink
Yarn
Kubernetes
Flink
Standalone
Standalone
对于分布式系统来说,可伸缩性非常重要。资源不足时可以动态添加节点,分担压力;资源充足时可以撤下服务器,减少资源浪费。阿里巴巴双 11 大屏使用
Flink
Flink
Storm
IO
以上是对
Flink
这里不会深入分析,主要简单介绍它的特性和优点,提供一个大致的了解,逐步深入,在后续文章中进一步学习。
处理流程
Flink
Flink
DataSet API
DataSet
map
flatMap
上图是数据处理流程,可以看到几个核心组件:
自带的
API
RichSourceFunction
图中获取的数据源是
Kafka
进行数据的转化,对应于文档中的算子
Operator
map
flatMap
filter
keyBy
reduce
fold
deprecated
aggregate
Window
从上图也可以看出,转换的操作可以不止一次,多个算子可以形成
chain
进行数据的存储或发送,对应于文档中的
connector
本文档主要讲述的是Sencha Touch快速入门2.0;Sencha Touch可以让你的Web App看起来像Native App。美丽的用户界面组件和丰富的数据管理,全部基于最新的HTML5和CSS3的 WEB标准,全面兼容Android和Apple iOS设备。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
常用的存储
sink
Kafka
Apache Cassandra
Elasticsearch
RabbitMQ
Hadoop
RichSinkFunction
性能比较
例如与
Hadoop
Storm
Spark
Flink
由于之前没有使用过这些大数据框架,所以测评数据可以参考以下两篇文章:
Flink实时计算性能分析 https://www.php.cn/link/9ce60c64ac4510df68537de96631261f Flink 与 Storm 的性能对比 https://www.php.cn/link/87e942236933558e0ea7cd7dee76e9db:
上图的数据源是
Kafka Source
Storm
Flink
partition
Flink
Storm
上图采用
outTime-eventTime
Flink
Storm
管理方式 JobManager、TaskWorker
上面是官方示意图,阐述了
Flink
Flink Program
JobManager
TaskManager
上面是我对它的理解,我个人认为
zhisheng
高可用 HA、状态恢复
High Availability
Flink
List
map
aggregate
State
Checkpoint
Savepoint
详细请参考这两篇:
Apache Flink 零基础入门(七):状态管理及容错机制 https://www.php.cn/link/a1280bb57e980da66d54eb0f20cbb95e Flink状态管理和容错机制介绍 https://www.php.cn/link/c72741e550f08085fefee77a99d9ccb3
真的是非常敬仰发明优秀框架的团队,也非常敬佩每一个为技术做贡献的参与者,所以每次找到相关的资料都跟发现宝藏一样。
下面罗列一下目前找到的资料:
Flink
国内牛人的分享:https://ververica.cn
可以关注一下提的问题和阿里分支
:https://github.com/apache/flink
个人学习的流程是跟着他的文章走了一遍,然后遇到不懂的继续深入学习和了解:http://www.54tianzhisheng.cn/tags/Flink/
这位大佬是从 16 年就开始研究
,写的文章很有深度,想要详细了解
,一定要看他的文章!:http://wuchong.me/categories/Flink/从上面的资料可以看出,
基础知识点
运行环境如下:
上图是我在学习过程中整理的一些知识点,之后将会根据罗列的知识点慢慢进行梳理和记录。
从调研的结果中可以看出,无论从性能、接口编程和容错上,
Flink
github
star
Flink
Apache Flink 已经是非常优秀和成熟的流计算引擎
Apache Flink 已经成为优秀的批处理引擎的挑战者
继续挖掘 Apache Flink 在 OLAP 数据分析领域的潜力,使其成为优秀的数据分析引擎
直觉相信,
Flink
参考资料
Flink 从 0 到 1 学习 —— Apache Flink 介绍
Apache Flink 是什么?
Apache Flink 零基础入门(一&二):基础概念解析
为什么说流处理即未来?
Apache Flink 零基础入门(七):状态管理及容错机制
Apache Flink状态管理和容错机制介绍
以上就是带你走入 Flink 的世界的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号