Spark流程图

Spark流程图超详细
(1) 将 Spark 程序通过 spark-submit(shell)命令提交到结点上执行,其实会通过反射的
方式,创建和构造一个 DriverActor 进程出来,通过 Driver 进程执行我们的 Application
应用程序。
(2) 应用程序的第一行一般是先构造 SparkConf,再构造 SparkContext;
(3)SparkContext 在初始化的时候,做的最重要的两件事就是构造 DAGScheduler 和
TaskScheduler;
(4)TaskScheduler会通过对应的一个后台进程去连接Master 向Master注册Application;
(5)Master 通知 Worker 启动 executor;
(6)executor 启动之后会自己反向注册到 TaskSchduler,所有的 executor 都反向注册到
Driver 之后,Driver 结束 SparkContext 初始化,然后继续执行自己编写的代码;
(7)每执行一个 action 就会创建一个 job;
(8)DAGScheduler 会根据 Stage 划分算法,将 job 划分为多个 stage,并且为每个 stage
创建 TaskSet(里面有多个 task);
(9)TaskScheduler 会根据 task 分配算法,把 TaskSet 里面每一个 task 提交到
executor 上执行;
(10)executor 每接收到一个 task,都会用 taskRunner 来封装 task,然后从线程池取出
一个线程执行这个 task;
(11)taskRunner 将我们编写的代码(算子及函数)进行拷贝,反序列化,然后执行 task;
(12)task 有两种,shuffleMapTask 和 resultTask,只有最后一个 stage 是 resultTask,
之前的都 是 shuffleMapTask;
(13)所以最后整个 spark 应用程序的执行,就是 job 划分为 stage,然后 stage 分批次
作为 taskset 提交到 executor 执行,每个 task 针对 RDD 的一个 partition 执行我们
定义的算子和函数,以 此类推,直到所有的操作执行完止。

该流程图主要参考来源https://www.bilibili.com/video/BV1L7411J7mi?from=search&seid=12643853460994435296
在这里插入图片描述

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

Z113014

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值