Flink概述
Apache Flink是一个开源的流处理框架,应用于分布式、高性能、高可用的数据流应用程序。可以处理有限数据流和无限数据,即能够处理有边界和无边界的数据流。无边界的数据流就是真正意义上的流数据,所以Flink是支持流计算的。有边界的数据流就是批数据,所以也支持批处理的。不过Flink在流处理上的应用比在批处理上的应用更加广泛,统一批处理和流处理也是Flink目标之一。
Flink可以部署在各种集群环境,可以对各种大小规模的数据进行快速计算。
Flink特征
1.一切皆为流
2.正确性保证
3.多层api
4.易用性
5.可扩展性
6.高性能
Flink的典型应用场景
Flink 主要应用场景有三类:
1.事件驱动
数据和计算是放在一起的,应用只需访问本地即可获取数据。
2.分析
传统的数据分析通常先对事件进行记录,然后在这个有界的数据集上执行批量查询,如果这时产生了新数据就必须把这个最新的数据添加到被分析的数据集中,然后重新运行查询。
3.管道式ETL
ETL是一个在存储系统之间转换和移动数据的常见方法。
Flink应用程序和结构
- 数据源
- 数据转换
- 数据输出
Flink技术栈
Flink技术栈分为三成:每一层包含的组件都提供了特定的抽象用来服务于上层组件。
1.部署层
2.核心层
3.API和组件层