spark运行机制

image-20211031202232218

  1. 构建DAG(Driver 端完成)

    使用算子操作 RDD 进行各种 Transformation 操作,最后通过 Action 操作触发 Spark 作业运行。提交之后 Spark 会根据转换过程所产生的 RDD 之间的依赖关系构建有向无环图

  2. DAG 切割(Driver 端完成)

    DAG 切割主要根据 RDD 的依赖是否为宽窄依赖来解决切割节点,当遇到宽依赖就将任务划分为一个新的调度阶段(Stage)。每个 Stage 中包含一个或多个 Task。这些 Task 将形成任务集(TaskSet),提交给底层调度器进行调度运行。

  3. 任务调度(Driver 端完成)

    每一个 Spark 任务调度器只为一个 SparkContext 实例服务。当任务调度器收到任务集后负责把任务集以 Task 任务的形式分发至 Worker 节点的 Executor 进程中执行,如果某个任务失败,任务调度器负责重新分配该任务的计算。

  4. 执行任务(Worker 的 Executor 执行)

    当 Executor 收到发送过来的任务后,将以多线程(会再启动 Executor 的时候就初始化好一个线程池)的方式执行任务计算,每个线程负责一个任务,任务结束后会根据任务的类型选择相应的返回方式将结果返回给任务调度器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值