第32课:Spark Worker原理和源码剖析解密:Worker工作流程图、Worker启动Driver源码解密、Worker启动Executor源码解密等
本节基于Spark 2.1版本从四个方面解密Spark Worker的运行原理和源码:1,Spark源码剖析 2,Worker启动Driver源码,Worker接收Master的指令启动Driver。3,Worker启动Executor源码 4,Worker与Master交互。Worker除了接收Master的指令,也会在Driver中或者Executor资源发生变化的时候,把相关的信息汇报给Master,如Master收到Executor挂掉的汇报消息,Master就会知道新的资源已经释放,就会调用Schedule再次进行新一轮资源的调度,作业运行在Worker所在的节点之上。
Worker在运行的时候作为一个进程,会接收Master的指令,如LaunchExecutor,我们看一下Worker.scala的LaunchExecutor的源码:
1. case LaunchExecutor(masterUrl, appId, execId,appDesc, cores_, memory_) =>
2. if (masterUrl != activeMasterUrl) {
3. logWarning("Invalid Master ("+ masterUrl + ") attempted to lau