Spark源码解读(2)——Worker启动过程

本文将讨论Spark以Standalone模式部署情况下,Worker的启动过程。


上文已经对Master的启动过程进行了较为详细的分析,Worker的启动过程大部分的代码都是和Master复用的,对于这部分不再赘述。因此对Worker启动过程的分析从onStart()方法开始

  override def onStart() {
    assert(!registered)
    logInfo("Starting Spark worker %s:%d with %d cores, %s RAM".format(
      host, port, cores, Utils.megabytesToString(memory)))
    logInfo(s"Running Spark version ${org.apache.spark.SPARK_VERSION}")
    logInfo("Spark home: " + sparkHome)
    createWorkDir()
    shuffleService.startIfEnabled()
    webUi = new WorkerWebUI(this, workDir, webUiPort)
    webUi.bind()
    registerWithMaster()

    metricsSystem.registerSource(workerSource)
    metricsSystem.start()
    // Attach the worker metrics servlet handler to the web ui after the metrics system is started.
    metricsSystem.getServletHandlers.foreach(webUi.attachHandler)
  }
这里可以看到Worker启动之后会想Master注册,registerWithMaster(),这部分逻辑相对简单,不再展开叙述

Worker会定时重试向Master注册,知道注册成功或者达到最大重试次数之后才会停止注册

需要注意的是registerWithMaster()方法在两种情况下会被调用:Worker启动,Master没有保存Worker的注册信息但是收到了Worker的心跳(有可能是由Worker心跳超时引起)


上面是对Worker启动过程的简单分析,如有错误欢迎各位同学拍砖。欢迎交流学习,QQ:1037727037

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值