Spark 源码学习 - Application 提交过程

目录

 Application 提交过程,按照如下步骤分析:

  1. submit Driver     Spark 源码学习 - 应用提交-1 Submit Driver
  2. launch Driver     Spark 源码学习 - 应用提交-2 Launch Driver
  3. registerApplication
  4. launch Executor 
  5. start CoarseGrainedExecutorBackend 
  6. create Executor && register Executor 
  7. Driver send Task 
  8. Executor sendback Result 

概要

主要介绍Standalone部署模式下,从命令行执行spark-submit命令提交任务开始,到最后计算结果返回driver的完整过程,主要涉及到spark-core中deploy、executor和scheduler部分,但DAGScheduler相关的部分涉及到内容较多,留作后面详细分析。

Spark Doc中的介绍

Spark官方文档中,Cluster Mode Overview部分对执行的流程做了简要的介绍,如下 

上图涉及到的概念spark文档中给出了解释,后续的分析会从代码层面有更直观的介绍,从上图能够得出Spark执行的大致过程,如下

  1. Driver程序(即用户编写的Spark程序)初始化SparkContext对象。
  2. SparkContext对象初始化过程中,连接集群资源管理器Cluster Manager,申请资源,注册APP信息。
  3. CM根据Driver申请的资源,在Worker上创建Executor。
  4. 创建好的Executor将其自身信息发送给Driver。
  5. Driver将用户编写的代码转为Task,发送给相应到Executor,进行计算。
  6. Executor计算结果返回给Driver,最后Executor的关闭及APP信息的修改等。

下图描述了Driver提交task的流程,详细流程中的Spark 任务调度之Driver send Task 会大致介绍这部分,后续会详解DAGScheduler的作用。 
这里写图片描述

结合上面两幅图,对任务的提交和调度有了初步的认识。

详细流程

以上面两幅图为基础,接下来结合源码详细介绍Standalone部署模式下,deploy-mode为cluster的任务调度流程,完整流程如下,将整个流程大致分为了八部分,如下图中小标,并对每个部分详细介绍 

附上:转载原文地址:
Mr_JieLQ    https://blog.csdn.net/u011564172/article/details/65653617

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值