spark的工作流程

1.通过"spark-submit"脚本将代码提交到集群中运行。

2.在初始化sparkContext上下文时,spark会创建"DAGScheduler""TeskScheduler"两个对象。

3.创建好这两个对象后,客户端(Driver)会向Master节点发送一个Application任务。

4.Master在接受到Application任务后,会进行资源调度。

5.Master会找到对应的Worker节点。

6.Worker节点在接受到Master发送来的任务后,会启创建对应的Executor。

7.Executor创建完成后,会反向向客户端(Driver)进行注册。

8.当spark中的RDD遇到Action算子时,DAGScheduler会根据宽依赖来化分Stage,根据窄依赖生成Task。如何在每个Stage中创建一个TaskSet(TaskSet用于存放Task),并且将TaskSet提交给TaskSchedule。TaskScheduler在得到TaskSet后,会将Task提交到Executor中。

9.当Task进入到Executor中后,回去线程池中获取对应的线程,开始执行任务(会到对应的DataNode中去读取数据),此过程会生成两种Task:ShuffleMapTask和ResultTask。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值