spark源码解析2-worker启动流程

  1. 在worker启动时,通过脚本start-slave.sh脚本中调用main()
  2. 在main()中封装参数,调用startRpcEnvAndEndpoint()创建RpcEnv
  3. startRpcEnvAndEndpoint()中创建RpcEnv和endpiont,并实例化Worker,执行Worker的onStart()方法
  4. 在onStart()方法中主要流程:
    1. 创建工作目录
    2. 启动shuffleservice
    3. 创建worker webui
    4. 调用registerWithMaster()向master注册worker
  5. registerWithMaster()方法中"
    1. 首先worker回向master注册自己
    2. 其次会启动定时任务,不断的向自己发送caseclass,调用reregisterWithMaster()
  6. reregisterWithMaster()方法中,如果之前的注册失败,会重复(15、16次)注册自己
  7. 如果在registerWithMaster()中注册成功,master会向worker发送case object RegisteredWorker,worker接收到消息后,会定时向master发送心跳
  8. master接收到心跳信息后,会修改worker的上次心跳时间

原文地址:https://www.cnblogs.com/haoyy/p/6201914.html