当master在接收到RegisterApplication消息后会向worker发送LaunchDriver和LaunchExecutor消息来分别启动Driver和Executor。实际上这里启动Executor是指的启动CoarseGrainedExecutorBackend进程,而Executor只是CoarseGrainedExecutorBackend的内部的对象。
下面是backend的onStart方法,会触发对task的操作
CoarseGrainedExecutorBackend中的DriverEndpoint类接收到RegisterExecutor消息后会对executor进行注册,注册到CoarseGrainedExecutorBackend中,并发送RegisteredExecutor消息给backend,使backend创建对应的executo对象,通过executor的方法来进行后面的对task的launch操作
跳过前面对taskSet和task的一系列操作(之前文章讲过),直接剖析launchTasks方法
executor接收到消息就会调用launchTask方法