Spark内核架构深度剖析

Spark内核架构深度剖析

spark内核中主要包括一下组件:
1、Application
2、spark-submit
3、Driver
4、SparkContext
5、Master
6、Worker
7、Executor
8、Job
9、DAGScheduler
10、TaskScheduler
11、ShuffleMapTask and ResultTask
spark应用执行的过程如下图所示:
这里写图片描述
上述概念的理解:

  • Application:是应用,简单理解就是你编写的spark程序
  • spark-submit:是用来向Spark集群提交application的程序,spark-submit,其实说白了就是一个继承了AKKA Actor的actor模型,如果不继承的话,就无法与我们进行master进行通信,就不能向master注册我们编写的application
  • Driver:就是我们用来提交编写的Spark程序的一台机器,在Driver中最重要的一件事—创建SparkContext
  • SparkContext : 我们在创建SparkContext的过程中,最重要的3件事,其一创建DAGSechedule(有向无循环图调度者),其二创建TaskScheduler(任务调度者),三就是依照TaskSecheduler创建TaskSchedulerBackend(任务调度后端)
  • Master主要用于集群的监控,运行资源的分配,Master在分配资源的时候,有两种分配方式,一种spreadapps,一种是非spreadapps,Master实际就是一个AKKA Actor的Actor模型接收到Driver发过来的注册通知,然后衡量任务,需要如何的资源,交给Worker进行干活,其实说白了就是让worker来启动executor进程
  • Worker:是一个进程,除了Master节点,每个节点都有一个Worker进程。Master节点可以配置可以不用配置Worker进程。它是spark执行的劳动力
  • Executor:worker节点内创建的进程,为每个task分配资源并执行task
  • Job:每一个action操作都会形成一个Job
  • DAGScheduler: DAG:有向无环图(Directed acyclic graph)在创建好程序之后,就会把各种算子交给DAGScheduler进行整体的一个调度,我们每一个Application在运行的时候,都会被DAGScheduler分成若干个Stage,是由相关的划分算法来做的,然后为每个stage创建一个Taskset。当DAGScheduler接受到任务信息之后,就会指派相关的TaskScheduler对任务进行具体的调度,让我们taskset中的的一批task去执行具体的任务
  • TaskScheduler:TaskScheduler ,就会组织,调度task进行任务执行
  • 当worker中的 executor 启动之后,会主动反向注册到Driver,当driver收到所有的executor(一组executor)反向注册信息之后,就开始加载数据创建RDD ,将各种算子交给DAGScheduler管理【so 问题来了,driver是如何知道它收到了一组内所有的executor呢,大家还记不记得,Master接收到Driver的注册请求后,进行任务分配,通知各个worker进行接收任务,worker结合之后会做出回应给master任务接收到了,master会告诉driver,worker已经接收任务了,并且master此时此刻将任务分配计划,交给DRIVER,Driver按照这个分配计划,就可以知道是否一组内Executor是否已经全部到达】
  • taskRunner: 在我们的task分配过来的时候,executor会从线程池中抽取相应的task,把它给我封装成taskRunner,执行具体的flatmap , map ,reduceByKey等等操作
  • 实际上,task任务分为两种,ShuffleMapTask,ResultTask,ResultTask说白了就是执行action的task,其余都是ShuffleMapTask
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiluohan0307

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值