您当前的位置: 首页 > 

段智华

暂无认证

  • 2浏览

    0关注

    1232博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

8.3 Task全生命周期详解

段智华 发布时间:2017-06-24 09:52:58 ,浏览量:2

8.3   Task全生命周期详解     8.3.1 Task的生产过程详解 

Task的生产过程详解:

1,  当Driver中的CoarseGrainedSchedulerBackend给CoarseGrainedExecutorBackend发送LaunchTask之后,CoarseGrainedExecutorBackend在收到LaunchTask消息后,首先会反序列化TaskDescription。

1,  Executor会通过会通过launchTask来执行Task,在launchTask方法中new出来TaskRunner,TaskRunner继承至Runnable接口。

3,TaskRunner在ThreadPool来运行具体的Task,在TaskRunner的run方法中首先会通过调用statusUpdate给Driver发信息汇报自己的状态说明自己是Running状态。其中execBackend是ExecutorBackend,ExecutorBackend是一个trait,其具体的实现子类是CoarseGrainedExecutorBackend ,其中的statusUpdate方法中将向Driver提交StatusUpdate消息。

4,  TaskRunner内部会做一些准备工作:例如反序列化Task的依赖,然后通过网络来获取需要的文件、Jar等;

5,  然后是反序列Task本身; 

6,  调用反序列化后的Task.run方法来执行任务并获得执行结果。其中Task的run方法调用的时候会导致Task的抽象方法runTask的调用,在Task的runTask内部会调用RDD的iterator()方法,该方法就是我们针对当前Task所对应的Partition进行计算的关键之所在ÿ

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

微信扫码登录

0.1109s