flink的并行
flink的并行包括三种并行:
第一种是数据并行,也就是不同的任务处理数据的不同部分,进行数据拆分
第二种是任务并行,也就是不同/相同算子的不同任务并行执行,互不影响
第三种是作业并行,也就是不同作业之间并行执行,互不影响
具体如下图所示:
flink任务间的数据交换策略
第一种是类似map等算子任务,直接把数据从一个算子转发到下一个算子
第二种是基于键值的转发,也就是前一个算子的所有任务会把键值相同的元素都发往下一个算子的同一个任务中
第三种是广播,也就是前一个算子任务把把所有的元素都复制几份,分别发往下游的每一个算子任务
第四种是随机转发,也就是前一个算子把元素随机的发送到下游的某一个算子任务中
这几种数据转发策略如下图所示