并行数据流
- Flink应用程序的执行具有并行、分布式特性
- Flink算子之间可以通过一对一模式或重新分布模式传输数据,具体采用哪种模式取决于算子的种类
一、 一对一模式
- 一对一模式也被称为直传模式,该模式可以保留元素的分区和顺序信息
- 同一分区的数据只会进入下游算子的相同分区
- Map算子、Filter算子、FlatMap算子等都是一对一模式
二、 重新分发模式
- 重新分发模式会更改数据所在的流分区
- 如果在程序中使用了不同的算子,则每个算子子任务会根据不同的算子将数据发送给不同的目标子任务
- 在重新分发数据的过程中,元素只有在每对输出和输入子任务之间才能保留其之间的顺序信息
三、 转换机器对应分发数据的模式
- keyBy():通过散列键重新分区
- Broadcast():广播
- Rebalance():随机重新分发