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