1、Basic API Concepts
- Flink程序是在分布式集合上实现转换的常规程序(例如,filtering, mapping, updating state, joining, grouping, defining windows, aggregating)。集合最初是从源创建的(例如,从文件、kafka主题或本地内存集合中读取)。结果通过接收器返回,例如,接收器可以将数据写入(分布式)文件,或者写入标准输出(例如,命令行终端)。Flink程序在各种上下文中运行,独立运行或嵌入到其他程序中。执行可以在本地JVM中进行,也可以在许多机器的集群上进行。
- 根据数据源的类型,即有界(bounded)或无界(unbounded)数据源,您可以编写一个批处理程序或流处理程序,其中DataSet API用于批处理,DataStream API用于流处理。
2、DataSet and DataStream
- Flink有特殊的类DataSet和DataStream来表示程序中的数据。您可以将它们看作是不可变的数据集合,可以包含重复的数据。在DataSet的情况下,数据是有限的,而对于DataStream,元素的数量可以是无界的。
3、Flink程序的剖析
Flink程序看起来像转换数据集合的常规程序。每个程序都由相同的基本部分组成:
- 获取一个执行环境
- 加载/创建初始数据
- 指定对该数据的转换
- 指定将计算结果放在何处
- 触发程序执行
Str