《spark内核 架构设计与实现原理》 读书笔记3-----Executer

概论---driver与worker的计算关系

 

executor部分的逻辑比较直接:

如上图所示,在driver进程的运行空间里,创建一个context变量,context变量通过Cluster Manager确立起与worker之间的联系,每个worker完成主程序分发下来的部分任务。

 

task的执行


当executor收到LaunchTask的消息之后,executor会通过函数launchTask启动一个task,executor上会为每一个task启动一个叫做TaskRunner的线程,线程本身来自于一个线程池。

每一个taskRunner的线程都会创建一个TaskContext的上下文环境类,在这个变量中保存着线程执行所需要的local变量,taskRunner的入口函数为runTask,它支持两种类型的task分别是:

ResultTask和ShuffleMapTask,taskRunner会将自身的执行结果汇报给Driver,汇报的消息种类包括:FINISHED,FAILED,LOST,KILLED.

posted on 2018-07-26 01:47  钻研spark  阅读(146)  评论(0编辑  收藏  举报

导航