然后我们再来看上一步我们理解了数据流的执行,生成过程,
然后我们再来看数据流的传输以及任务链,因为如果需要知道
两个任务到底是如何合并的,这里就需要知道数据流传输和任务链才行.
首先我们要知道
1.一个程序中,不同的任务可能有不同的并行度
2.算子也就是不同的任务之间数据传输的模式,可能有one to one的模式,也就是forward模式,也可以是redistributing模式,要知道这个redistributiing模式会导致stream分区的改变,也就一个任务可能会
分成多个任务.比如keyby这个算子,会基于hash值,进行重新数据的重新分区,也就是数据流向不同的slot.
这里的redistribute类似于算子会进行hash等操作,把数据分开,而one to one的操作,比如map ,filter, flatMap不会进行分开,所以是one to one的操作.