Flink 概述
一:产生背景
1.1 历史背景
- 随着互联网应用的快速发展,
实时流数据产生日益增多和普遍化。如日常生活、金融、驾驶、LBS、电商等众多领域。 - 实时数据的处理和挖掘能够带来离线数据处理和挖掘
更多的社会发展和商业价值。 - 如何快速响应和处理这些大规模的实时数据流,成为众多互联网大厂的当务之急。
- 在flink之前也出现了很多
流数据处理引擎,包括storm、sparkstreaming等知名流行框架,但各自均有较明显的不足,导致没有达到理想的流处理引擎的标准要求。
1.2 优秀的流处理引擎
- 优秀流处理引擎标准要求
- 低延迟、高吞吐量、容错性、窗口时间语义化、编程效率高与运行效果好的用户体验;
- storm
- 优点:低延迟
- 缺点:其它要求都较差一些
- sparkstreaming
- 优点:高吞吐量、容错性高
- 缺点:其它要求都较差一些
二:基本介绍
2.1 概念说明
- 由Apache软件基金会开发的开源流处理框架
- 其核心是用Java和Scala编写的框架和分布式处理引擎
- 用于对无界和有界数据流进行有状态计算。
- 无界数据流: 即为实时流数据;
- 有界数据流:即为离线数据,也称为批处理数据;
2.2 特点特征
- 被设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。
- 能够达到实时流处理引擎的全部标准要求。
- 低延迟、高吞吐量、容错性、窗口时间语义化、编程效率高与运行效果好的用户体验;
三:应用场景
3.1 官方说明
- 事件驱动型应用
- 数据分析型应用
- 数据管道 ETL
3.2 实际情况
- 要求严格的实时流处理场景
四:代码实现
4.1 实现方式
- Java API
- Scala API
4.2 统一数据处理过程抽象
- 将实时和批处理的数据过程,均抽象成三个过程,即Source->Transform->Sink。
- Source为源数据读入,即Source算子。
- Transform是数据转换处理过程,即Transform算子。
- Sink即数据接收器,即数据落地到存储层,即Sink算子。
- 代码实现复杂度
- 丰富的API和算子操作;
- 抽象封装统一性较高,支持类SQL编程,编程复杂度并不高。
五:版本发展
| 版本 | 发行日期 | 备注 |
|---|---|---|
| Flink 0.6-incubating | 2014-08-26 | 初步得到团队内部认可,正在快速迭代中 |
| Flink 0.9.0-milestone | 2015-04-13 | 有重大进展,得正式对外发布, |
| 0.9 | 2015-09-01 | 从此时开始引入阿里巴巴,并成为阿里系主干业务实时流处理引擎,内部改良优化后命名为blink |
| 0.10 | 2016-02-11 | |
| 1.0 | 2016-05-11 | 很有里程碑、代表性的一个版本 |
| 1.1 | 2017-03-22 | |
| 1.2 | 2017-04-26 | |
| 1.3 | 2018-03-15 | |
| 1.4 | 2018-03-08 | |
| 1.5 | 2018-10-29 | |
| 1.6 | 2018-10-29 | |
| 1、在2019年初,blink在阿里内部经过多年的商用实践,增加了N多新特性,并得到广泛应用和成熟化,正式对外开源,并捐赠给Apache Flink社区,并成为其下的分支方式开源并逐步融合后,依然以Flink为主进一步推进开源进程。****2、阿里系以9000万欧元收购了创业公司 Data Artisans,即Flink的开发团队所属公司。 | ||
| 1.7 | 2019-02-15 | |
| 1.8 | 2019-04-09 | |
| 1.9 | 2019-08-19 | 目前市占率较高的一个版本 |
| 1.10 | 2020-02-11 | |
| 1.11 | 2020-07-06 | 从此版本开始,加入很多新特性,支持hadoop3.x版本 |
| 1.12 | 2020-12-08 | |
| Flink 1.13.0 | 2021-04-30 | |
| Flink 1.13.1 | 2021-05-28 | 版本迭代很快,社区很活跃,发展非常快****已是稳定版。 |
- Flink版本在早期就得到阿里认可,并进行集团内部孵化和二次开发、商用实践,命名为Blink。
- Blink的主要贡献是在用户体验上,包括SQL、webUI等方面。
- 在2019年进行了开源反馈给社区,从此更多的是以Flink merge Blink新功能后,以Flink为主继续推进开源。
- 基于市场量、成熟度、社区丰富度等方面,通常选择1.13.1版本。
六:市场前景
- 现实情况
- 学习成本较高、应用场景较垂直,其实际开发者在市场上是比较衡缺的。
- 相对于更广大的中小型公司,Flink的使用量最主要是集中在中大型互联网科技公司。
- 发展趋势
- 商业市场、各种大型IT企业对大规模实时数据场景需求旺盛。
- Flink在实时数据处理方面的架构设计与商用实践表现较为突出。
- 得到阿里系的商业收购+大规模人力财力物力的支持,未来发展不可限量。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 爱影客!


