Spark应用架构

Spark应用架构

Driver Program

  • 相当于AppMaster,负责应用中所有Job的调度执行
  • 运行main函数
  • 一个SparkApplication只能有一个Driver
  • Driver Program是数据的处理逻辑,包含sparkContext

Executors

  • 相当于一个线程池,每个线程执行一个Task任务,一个Task执行需要1 core CPU
  • 一个SparkApplication能有多个Executor,可以进行设置
  • Executor是一个worker Node为应用启动的一个进程,负责执行任务,将数据保存在内存或磁盘上

其他概念

  • sparkContext:用户逻辑和spark集群交互的接口,会和Cluster Manager进行交互,例如申请计算资源
  • Cluster Manager:负责集群的资源调度
  • worker Node:集群中执行计算任务的节点
  • Task:分配到Executor的计算任务,是spark的最小执行单元,一般有多少Partition就会有多少Task
  • Job:Task并行计算的部分,spark的action操作会生成一个job
  • Stage:job的组成单位,一个job会被切分成多个stage,每个stage之间彼此相互依赖

应用程序计算执行的过程

  1. 应用程序创建sparkContext,新建的SparkContext实例连接到ClusterManager。ClusterManager根据用户提交的信息分配计算资源,启动Executor
  2. Driver将应用程序划分不同的执行阶段Stage,每个stage由相同的一组Task组成,Task作用于数据不同分区。stage划分完毕和Task创建完毕,Driver向Executor发送Task
  3. Executor接收Task之后,准备好Task需要的执行环境,执行Task,将Task的运行状态汇报给Driver
  4. Driver根据收到的Task运行状态来进行更新。
  5. Driver调用Task,将Task发送到Executor,在所有的Task都成功执行或者超过限制之后,停止
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

健鑫.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值