您当前的位置: 首页 >  交互

段智华

暂无认证

  • 3浏览

    0关注

    1232博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ShuffleMapTask执行结果和Driver的交互原理及源码

段智华 发布时间:2017-06-24 09:45:18 ,浏览量:3

    ShuffleMapTask执行结果和Driver的交互原理及源码

Driver中的CoarseGrainedSchedulerBackend给CoarseGrainedExecutorBackend发送launchTasks消息,CoarseGrainedExecutorBackend收到launchTasks消息以后会调用executor.launchTask。 通过launchTask来执行Task,launchTask方法中根据传入的参数:taskId、尝试次数、任务名称, 序列化后的任务创建一个TaskRunner,在threadPool 中执行TaskRunner。 TaskRunner内部会先做一些准备工作:例如反序列化Task的依赖,通过网络来获取需要的文件、Jar等 ;然后调用反序列化后的Task.run方法来执行任务并获得执行结果:

Executor.scala源码

1.         override def run(): Unit = {

2.         …….   

3.          val value = try {

4.                   val res = task.run(

5.                     taskAttemptId = taskId,

6.                     attemptNumber = attemptNumber,

7.                     metricsSystem = env.metricsSystem)

8.                   threwException = false

9.                   res

其中Task的run方法调用的时候会导致Task的抽象方法runTask的

关注
打赏
1659361485
查看更多评论
立即登录/注册

微信扫码登录

0.2677s