Spark Core(十)Spark Master的注册机制

  1. 接受Worker的注册

    1. Worker在启动的时候会主动向Master进行注册,这样在运行环境中就会实时增加节点,这样就不需要重启Spark集群。在Worker启动的以后,会调用Worker对象中的onStart方法,在这个方法中会调用registerWithMaster方法,来向Master进行注册
      这里写图片描述
      这里写图片描述
      这里写图片描述
      这里写图片描述
    2. Master接收到Worker的注册请求以后, 调用receiveAndReply方法,注册成功以后,通过持久化方法persistanceEngine方法将信息持久化到文件中或者Zookeeper中。然后在将注册结果返回给Master
      这里写图片描述

    3. receiveAndReply方法中调用registerWorker方法来注册Worker信息,该方法中Master将过滤后的Worker信息加入到主机的缓存中
      这里写图片描述

    4. 调用schedule方法,开始资源调度。
    5. Worker接收到Master返回来的信息调用handlerRegisterResponse方法进行结果的处理
      这里写图片描述
  2. 接受Driver的注册

    1. 当我们利用spark-submit提交作业的时候,这时候会初始化SparkSubmit这个类,并执行Main函数,Main函数中会对命令进行解析,然后根据模式匹配来确定是submit、kill还是requestStatus请求。以submit为例,当匹配模式匹配为submit时,就会调用submit函数,在submit函数中继续调用prepareSubmitEnvironment函数来准备提交环境。然后初始化org.apache.spark.deploy.Client这类, 在client类的文件里还有一个ClientEndpoint这个私有类,Client初始化后会调用ClientEndpointonstart方法,根据匹配模式来确定是launch还是kill,如果是launch,那么Client就会想Master调用ayncSendToMasterAndForwardReply方法,发送RequestSubmitDriver消息。如果是kill,那么Client就会调用ayncSendToMasterAndForwardReply方法,发送RequestKillDriver消息
      这里写图片描述
      这里写图片描述
      这里写图片描述
    2. Master接收到Driver的注册请求以后,调用receiveAndReply方法,然后进行模式匹配,匹配到的是RequestSubmitDriver,那么就开始注册Driver
      这里写图片描述
  3. 接受Application的注册

    1. 在上一章节中,我们提到了创建TaskScheduler的时候需要创建TaskSchedulerImpl,然后它会调用start方法,在这start方法中会调用SparkDeploySchedulerBackend的start方法,在这个方法中就有一个创建AppClient的代码,当创建AppClient的时候,会执行它内部的onStart方法,这个方法中又会调用registerWithMaster方法,registerWithMaster方法又会调用tryRegisterAllMasters方法,向所有Master进行注册,因为只有一个活跃的Master,所以只能注册到一个Master中。当注册成功以后,将成功信息返回给Client
      这里写图片描述
      这里写图片描述
      这里写图片描述
      这里写图片描述
      这里写图片描述
      这里写图片描述

    2. Master接收到Application的注册请求以后,在receive方法中模式匹配到了registerApplication对象,然后进行Application的注册。
      这里写图片描述
      这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值