spark源码(十一)Worker receive 总结
onstart revice方法总结
onstart
1.启动定时发送 向自己 ReregisterWithMaster(一直运行)
2.启动多线程 向master RegisterWorker
msg: RegisterWorkerResponse
1.更新master 向自己 SendHeartbeat(一直运行)
2.向自己 WorkDirCleanup (一直运行)
3.向master WorkerLatestState
SendHeartbeat
向master Heartbeat
WorkDirCleanup
删除资源文件和 shuffleService.executorRemoved 文件
MasterChanged
只是被动接受消息,之更改自身的变量属性即可
ReconnectWorker
1.启动定时发送 向自己 ReregisterWithMaster(一直运行)
2.启动多线程 向master RegisterWorker
LaunchExecutor
1.创建资源文件夹 修改资源总数
2.向自己 ExecutorStateChanged //成功 失败
3.向master ExecutorStateChanged //失败的消息
executorStateChanged: ExecutorStateChanged
判断状态 调用 shuffleService.executorRemoved 服务
KillExecutor(masterUrl, appId, execId)
杀任务 但是没有找到回收资源代码 coresUsed memoryUsed 操作变量
LaunchDriver(driverId, driverDesc, resources_)
1.操作资源变量、资源文件、java参数、自定义参数
2.向自己 DriverStateChanged
KillDriver(driverId)
杀任务 但是没有找到回收资源代码 coresUsed memoryUsed 操作变量
driverStateChanged @ DriverStateChanged(driverId, state, exception)
1.操作资源变量
2.回收资源
ReregisterWithMaster
1. 向master RegisterWorker
2.定时调用自己
ApplicationFinished(id)
executorStateChanged
DecommissionWorker
更改自己的状态
WorkerSigPWRReceived
1.DecommissionWorker
2.向master WorkerDecommissioning //自己失联消息
有一个猜测:
KillExecutor KillDriver 之前或者以后都会调用 executorStateChanged driverStateChanged
以便更改资源变量
搬砖多年终不得要领,遂载源码看之望得真经。