一.产生背景
实时流数据增多 : 互联网应用快速发展,实时流数据日益增多
价值更大: 实时流数据的处理和挖掘带来的价值比离线数据处理要多
大厂需求 : 各大互联网厂商需要一个能够快速响应和处理大规模实时流数据的技术
其他流处理引擎不能够满足需求 : storm/jstorm,sparkstreaming等
优秀的流处理引擎要求:低延时,高吞吐,容错性好,窗口时间语义化,编程效率高,运行效果好
storm/jstorm
优点:低延时
缺点:其他的都差一些
sparkstreaming
优点:高吞吐,容错性好
缺点:其他的都差一些
二.flink基本介绍
1.概念
-
Apache基金会开发的分布式的开源的流处理框架
- scala和java编写
- 用于对有界和无界数据流进行有状态的计算
- 有界数据流:即实时数据流
- 无界数据流:即离线数据流,也称批处理数据
2.特点
- 适用所有常见的集群环境
- 内存计算,大规模处理
- 满足实时流处理引擎的全部需求
- 低延迟
- 高吞吐
- 容错性好
- 窗口时间语义化
- 编程效率高
3.应用场景
- 事件驱动型应用
- 数据分析型应用
- 数据管道ETL
- 要求严格的实时流处理场景
4.代码实现
实现方式:javaAPI,scalaAPI
数据处理过程抽象
- 将实时和离线数据处理的过程,均抽象成三个过程,及Source->Transform->Sink
- Source 源数据读取
- Transform 数据的转换
- Sink 数据的落地
代码实现的复杂度
- API丰富,支持SQL,复杂度不高
三.市场背景
- 现实情况
- 学习成高,开发人员少
- flink主要是互联网大厂在使用
- 发展趋势
- 实时数据处理需求逐渐变大
- flink对于实时数据的处理表现优异
- 得到了阿里的支持,发展前景极好