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

本文介绍了Spark集群中Worker、Driver及Application向Master注册的过程。Worker通过registerWithMaster方法注册,Master接收后通过persist方法保存信息。Driver注册则由SparkSubmit初始化并发送RequestSubmitDriver消息。Application注册发生在TaskScheduler启动过程中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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的注册。
      这里写图片描述
      这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值