spark作业的整体执行过程

spark作业的整体执行过程

Spqrk 作业的整体执行过程:
1:启动spark集群,就是spark的start-all.sh脚本来启动spark中的master和worker节点启动了一个
对应的master进程和worker进程
2:当worker进程启动起来之后 向master进程发送注册信息,所以worker是一个基于AKKA,actor的事件驱动模型
master也是一个基于AKKA Actor的事件驱动模型
3:当worker向master注册成功之后,worker要不断的向master发送心跳包,去监听主节点是否存在,就是基于
AKKA Actor的事件驱动模型
4:Driver向spark集群提交作业,就是向master提交作业,其实说白了就是通过基于AKKA Actor的事件驱动模型
向我们的master发送一个RegisterApplication的case class,注册我们的spark应用需要的资源。说白了就是
向master申请运行程序所需要的资源
5:master其实就是一个基于AKKA Actor的事件驱动模型进程,当收到Driver提交的作业请求之后向worker节点
指派相应的作业任务。就是在对应的worker节点上启动对应的executor进程
6:当worker节点接收到master节点启动executor任务之后就启动对应的executor进程,向master汇报启动成功
,可以接收任务
7:当executor进程启动之后,就向driver进程反向注册,基于AKKA Actor的事件驱动模型,告诉Driver
谁可以接收任务,执行spark作业、
8:Driver接收到注册之后,就知道了向谁发送spark作业,那么这样在spark集群中就有一组独立的executor
进程为该driver服务
9:该sparkcontext中非常核心的组件出场了–DAGScheduler,DAGScheduler根据我们编写的spark作业逻辑
将spark作业分成若干个阶段stage然后为每一个阶段组装一批task组成taskset;然后将这些
DAGScheduler组装好的taskset交给taskscheduler,由taskscheduler将这些任务分发给对应的executor
10:当executor进程接收到driver发送过来的taskset之后 进行反序列化,然后将这些task封装进一个
叫taskrunner的线程中,然后放到本地线程池中,调度我们的作业执行

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值