spark源码系列文章------shuffle模块详解
一、Basic shuffle writer实现解析
在Executor上执行shuffle Map Task时,最终会调用shuffleMapTask的runTask,核心逻辑如下:
1.从sparkEnv中获得shuffleManager;
2.从manager中获得writer
3.调用RDD开始计算,运算结果通过writer进行持久化,持久化之前通过Aggregator来确定是否需要进行Map端聚合,然后将结果通过FileShuffleManager#forMapTask的方法写入,写入完成后,会将元数据信息写入MapStatus,然后下游的Task可以通过这个MapStatus取得需要处理的数据。
最后更新:2017-07-19 23:02:36