**
Flink初识
**
1、产生背景
随着互联网应用的快速发展,实时流数据产生日益增多和普遍化。如日常生活、金融、驾驶、LBS、电商等众多领域概模能外。
实时数据的处理和挖掘能够带来离线数据处理和挖掘更多的社会发展和商业价值。
如何快速响应和处理这些大规模的实时数据流,
在flink之前也出现了很多流数据处理引擎,包括storm、sparkstreaming等知名流行框架,但各自均有较明显的不足,导致没有达到理想的流处理引擎的标准要求,
优秀流处理引擎标准要求
低延迟、高吞吐量、容错性、窗口时间语义化、编程效率高与运行效果好的用户体验等主要方面。
storm
优点:低延迟
缺点:其它要求都较差一些
sparkstreaming
优点:高吞吐量、容错性高
缺点:其它要求都较差一些
2、flink介绍
2.1)概念说明
由Apache软件基金会开发的开源流处理框架
其核心是用Java和Scala编写的框架和分布式处理引擎
用于对无界和有界数据流进行有状态计算。
无界数据流: 即为实时流数据
有界数据流:即为离线数据,也称为批处理数据
2.2)特点特征
被设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。
能够达到实时流处理引擎的全部标准要求。
低延迟、高吞吐量、容错性、窗口时间语义化、编程效率高与运行效果好的用户体验等主要方面。
2.3)应用场景
官方说明
事件驱动型应用
数据分析型应用
数据管道 ETL
实际情况
要求严格的实时流处理场景
2.4)代码实现
实现方式
Java API
Scala API
统一数据处理过程抽象
将实时和批处理的数据过程,均抽象成三个过程,即Source->Transform->Sink。
Source为源数据读入,即Source算子。
Transform是数据转换处理过程,即Transform算子。
Sink即数据接收器,即数据落地到存储层,即Sink算子。
代码实现复杂度
丰富的API和算子操作,抽象封装统一性较高,支持类SQL编程,编程复杂度并不高。