码迷,mamicode.com
首页 > 其他好文 > 详细

Spark Shuffle Write 阶段函数调用分析

时间:2015-05-05 10:18:01      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

Shuffle Write阶段函数调用如下:

org.apache.spark.executor.run() --> org.apache.spark.scheduler.Task.run() --> org.apache.spark.scheduler.runTask()

--> org.apache.spark.shuffle.hash.HashShuffleWriter.write() --> org.apache.spark.storage.DiskBlockObjectWriter.write()

任务在Executor上开始真正执行,代码如下:

技术分享

该过程调用Task 中的run方法,该方法会调用runTask方法,而在spark中,任务可分为ShuffleMapTask和ResultTask,有Shuffle过程的为ShuffleMapTask

因此在Task类中的run方法中runTask(context: TaskContext)就有ShuffleMapTask与ResultTask的相应实现,本文讨论Shuffle Write过程中的函数调用关系

具体如下:

  在ShuffleMapask中的runTask()实现中有如下代码:

  技术分享

该阶段会调用Shuffle write方法,默认调用HashShuffleWriter中write方法,具体代码如下:

  技术分享

该阶段会调用DiskBlockObjectWriter中的write()方法,实现数据的真正写入,具体如下:

  技术分享

Spark Shuffle Write 阶段函数调用分析

标签:

原文地址:http://www.cnblogs.com/mangmang/p/4478306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!