spark源码二:yarn.client 客户端的调用流程

上次说到任务在submit的时候会根据,资源平台的不同,反射调用不同的类来调度任务,首先说下yarn的调度入口。
找到org.apache.spark.deploy.yarn.Client

总结下:client主要是初试话参数,封装RM为创建Application所需要的信息,最后通过RPC channel 向yarn发送启动ApplicationMaster的请求

  //从main方法开始
  def main(argStrings: Array[String]) {
    if (!sys.props.contains("SPARK_SUBMIT")) {
      logWarning("WARNING: This client is deprecated and will be removed in a " +
        "future version of Spark. Use ./bin/spark-submit with \"--master yarn\"")
    }

    // 系统环境添加yarn集群的标识
    System.setProperty("SPARK_YARN_MODE", "true")
    //实例化SparkConf
    val sparkConf = new SparkConf

    val args = new ClientArguments(argStrings, sparkConf)
    // to maintain backwards-compatibility
    if (!Utils.isDynamicAllocationEnabled(sparkConf)) {
      sparkConf.setIfMissing("spark.executor.instances", args.numExecutors.toString)
    }
    //实例化Client,调用run方法
    new Client(args, sparkConf).run()
  }
// 向yarn的ResourceManager提交Application
def run(): Unit = {
    // yarn提交Application,并放回appId
    this.appId = submitApplication()
    if 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值