spark源码(五)Master recive方法总结

一.Master recive方法总结

1.1 公共方法介绍及发送的消息介绍
    schedule():方法很重要,基本上所有的方法都会调用这个
        launchDriver()
        launchExecutor()
        all: worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    registerApplication:
        添加app相关资源,但是没有executor 和driver操作
    registerWorker:
        添加worker相关资源
        removeWorker()
        all:
        driver.send(ExecutorUpdated)  driver.send(WorkerRemoved)
        worker.send(LaunchDriver) worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    removeWorker():
        driver.send(ExecutorUpdated)
        driver.send(WorkerRemoved)
        removeExecutor()
        removeDriver()
        schedule()
        all:
        driver.send(ExecutorUpdated)  driver.send(WorkerRemoved)  
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    removeExecutor():
        移除对应executord对应资源
    removeDriver():
        移除对应driver对应资源
        schedule()
        all:
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    removeApplication()
        app的相关操作
        killExecutor()
        driver.send(ApplicationRemoved)
        schedule
        worker.send(ApplicationFinished)
        all:
        driver.send(ApplicationRemoved)  worker.send(ApplicationFinished)
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    launchDriver():
        添加对应driver资源
        worker.send(LaunchDriver)
    launchExecutor()
        worker.send(LaunchExecutor)
        driver.send(ExecutorAdded)
    relaunchDriver():
        removeDriver()
        schedule()
        all:
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
1.2 revice方法总结

每一个方法都有自己的一个对应的消息,但是最后都是会调用schedule方法
完成LaunchDriver LaunchExecutor ExecutorAdded

    ElectedLeader: 内部调用 CompleteRecovery
        registerApplication()
        registerWorker()
        all:
        driver.send(ExecutorUpdated)  driver.send(WorkerRemoved)
        worker.send(LaunchDriver) worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    CompleteRecovery:
        relaunchDriver()
        removeDriver()
        schedule()
        all:
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    WorkerDecommissioning:
        worker.send(MasterInStandby)
    DecommissionWorkers:
        worker.send(DecommissionWorker)
    RegisterWorker:
        worker.send(MasterInStandby)
        worker.send(RegisteredWorker)
        registerWorker()
        worker.send(RegisteredWorker)
        worker.send(RegisterWorkerFailed)
        all:
        driver.send(ExecutorUpdated)  driver.send(WorkerRemoved)
        worker.send(LaunchDriver) worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
        worker.send(MasterInStandby)  worker.send(RegisteredWorker)  worker.send(RegisterWorkerFailed)
    RegisterApplication:
        registerApplication()
        driver.send(RegisteredApplication)
        all:
        driver.send(ExecutorUpdated)  driver.send(WorkerRemoved)
        worker.send(LaunchDriver) worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
        driver.send(RegisteredApplication)
    ExecutorStateChanged:
        driver.send(ExecutorUpdated)
        removeExecutor()
        removeApplication()
        schedule()
        all:
        driver.send(ApplicationRemoved)  worker.send(ApplicationFinished)
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    DriverStateChanged:
        removeDriver()
        all:
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    Heartbeat:
        worker.send(ReconnectWorker)
    MasterChangeAcknowledged:
        completeRecovery()
        all:
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    WorkerSchedulerStateResponse:
        app driver executor操作
        completeRecovery()
        all:
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    WorkerLatestState:
        worker.send(KillExecutor)
        worker.send(KillDriver)
    UnregisterApplication:
        removeApplication()
        all:
        driver.send(ApplicationRemoved)  worker.send(ApplicationFinished)
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
    CheckForWorkerTimeOut:
        removeWorker()
        all:
        driver.send(ExecutorUpdated)  driver.send(WorkerRemoved)  
        worker.send(LaunchDriver)  worker.send(LaunchExecutor)  driver.send(ExecutorAdded)
posted @   Kotlin  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
Live2D
点击右上角即可分享
微信分享提示
西雅图
14:14发布
西雅图
14:14发布
4°
东南风
2级
空气质量
相对湿度
92%
今天
3°/12°
周四
4°/11°
周五
2°/10°