Spark作业工作流程

本文详细解析了Spark应用中的核心组件如何协同工作,包括创建SparkContext、资源申请、任务调度等步骤,强调了计算资源的优化分配原则。
摘要由CSDN通过智能技术生成

Driver相当于指挥所,SparkContext相当于是指挥所里面的指挥官,用户提交一个任务由SparkContext指挥官来进行分配和申请资源执行。

1. 首先先构建 spark Application 的运行环境,生成 SparkContext 对象。

2.SparkContext 会向资源管理器注册并申请资源。(资源管理器:YARN、Mesos、standlone 等)

3. 资源管理器收到 sparkContext 的资源请求后,会为 Executor 分配资源并启动 Executor 进程。

4. 然后,SparkContext 会根据 RDD 依赖关系,构建 DAG 图,并提交给 DAG Scheduler,DAG Scheduler 会将 DAG 图分解成一个个的 Stage,每个 Stage 中都包含若干个任务,stage 相当于任务集合。

然后,再把 Stage 提交给下一个阶段 Task Scheduler,Task Scheduler 就是负责把任务分发到具体的节点上的。

5.Task Scheduler 拿到任务后并不是立即分发出去,而是等 Worker Node 主动过来申请运行 Task,Task Scheduler 接到申请后,会将任务返回给 Worker Node,由 Worker Node 的 Executor 分配线程去运行。

(但是,这么多的 Worker Node 来申请,Task Scheduler 应该发给谁呢?原则是优先本地节点运行(计算向数据靠拢)。)

6. 最后,Executor 运行的结果会逐级返回给 Task Scheduler,再返回到 DAG Scheduler,最后返回到 SparkContext 中,做最后的处理。(处理可以返回给用户,也可以写入 HDFS 中)。

7. 最后运行完毕后,就释放资源。

B站讲解视频:5_3.3.2 Spark 运行基本流程_哔哩哔哩_bilibili

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值