以最常见的wordcount为例首先是整理如下图所示:
执行到此图右上角处形成tuple(key,1)结果的时候,接着就会执行reducebykey操作,其实会使用hashpartitioner,将每个key写入对应的partition的本地磁盘文件中,左下角的mappartitionsRDD其实就代表了本地文件的RDD,再接着我们看下这个mappartitionsRDD就会变成如下图:
这样的一个图就是一个task的文件其他的同样会有这样的一个个的磁盘文件如下图
在之后就是shuffleRDD
如上面的右图,会从左侧的各个mappartitionsRDD拉取数据汇总到一起。对每个partition的数据按照key进行聚合。其实说白了stage的划分就是在shuffleRDD的左侧向前是一个stage0从shuffleRDD(包含)开始算作stage1,其实在说白了就是shufflewrite分到上一个stage,shuffleread分到下一个stage。
stage划分原理剖析
最新推荐文章于 2022-07-02 11:15:35 发布