1、Spark等计算任务一般分成两个步骤:资源申请、任务调度
2、资源申请:
1、Yarn Client模式
1、在 YARN Client 模式下,spark-submit提交 Spark Job之后,就会提交的本地机器上启动Driver端
2、 Driver 启动后会与 ResourceManager (RM)建立通讯并发起启动 ApplicationMaster(AM)
3、请求 RM接收到这个 Job 时,会在集群中选一个合适的 NodeManager (NM)并分配一个 Container(具有计算资源的一个容器),然后启动 ApplicationMaster(初始化SparkContext)
4、AM的功能相当于一个 ExecutorLaucher (Executor启动器),负责向 RM申请 Container 资源 ,RM收到请求后便会与 NM通信,启动 Container
5、AM对RM指定 NM分配的 Container 发出启动 Executor 进程请求
6、Executor进程启动后会向 Driver 反向注册,Executor 全部注册完成后 Driver 开始执行 Job 任务
7、Driver 中的 SparkContext 分配 Task 给 Executor 执行