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
以便更改资源变量
搬砖多年终不得要领,遂载源码看之望得真经。
分类:
spark-core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?