Spark的核心组件和运行流程

简介: Spark的核心组件和运行流程

Driver

Spark驱动器节点,用于执行Spark任务中的main方法,负责实际代码的执行工作。Driver在Spark作业执行时主要负责:
将用户程序转化为作业(job);
在Executor之间调度任务(task);
跟踪Executor的执行情况;
通过UI展示查询运行情况;

Executor

Spark Executor节点是一个JVM进程,负责在 Spark 作业中运行具体任务,任务彼此之间相互独立。Spark 应用启动时,Executor节点被同时启动,并且始终伴随着整个 Spark 应用的生命周期而存在。如果有Executor节点发生了故障或崩溃,Spark 应用也可以继续执行,会将出错节点上的任务调度到其他Executor节点上继续运行。
Executor有两个核心功能:

  1. 负责运行组成Spark应用的任务,并将结果返回给驱动器进程;
  2. 它们通过自身的块管理器(Block Manager)为用户程序中要求缓存的 RDD 提供内存式存储。RDD 是直接缓存在Executor进程内的,因此任务可以在运行时充分利用缓存数据加速运算。

Spark运行流程概述

Spark运行流程概述.png
上图为Spark通用运行流程,不论Spark以何种模式进行部署,任务提交后,都会先启动Driver进程,随后Driver进程向集群管理器注册应用程序,之后集群管理器根据此任务的配置文件分配Executor并启动,当Driver所需的资源全部满足后,Driver开始执行main函数,Spark查询为懒执行,当执行到action算子时开始反向推算,根据宽依赖进行stage的划分,随后每一个stage对应一个taskset,taskset中有多个task,根据本地化原则,task会被分发到指定的Executor去执行,在任务执行的过程中,Executor也会不断与Driver进行通信,报告任务运行情况。

目录
相关文章
|
1天前
|
分布式计算 监控 Spark
Spark 任务运行时日志分析
Spark 任务运行时日志分析
54 0
|
1天前
|
分布式计算 监控 Java
Spark学习---day06、Spark内核(源码提交流程、任务执行)
Spark学习---day06、Spark内核(源码提交流程、任务执行)
|
1天前
|
机器学习/深度学习 分布式计算 算法
Spark MLlib简介与机器学习流程
Spark MLlib简介与机器学习流程
|
1天前
|
存储 分布式计算 监控
Spark作业的调度与执行流程
Spark作业的调度与执行流程
|
1天前
|
存储 分布式计算 大数据
【大数据技术Hadoop+Spark】Spark RDD设计、运行原理、运行流程、容错机制讲解(图文解释)
【大数据技术Hadoop+Spark】Spark RDD设计、运行原理、运行流程、容错机制讲解(图文解释)
84 0
|
6月前
|
缓存 分布式计算 资源调度
Spark2:运行架构
Spark2:运行架构
181 0
|
9月前
|
分布式计算 监控 Java
Spark学习---7、Spark内核(源码提交流程、任务执行、Shuffle、内存管理)(一)
Spark学习---7、Spark内核(源码提交流程、任务执行、Shuffle、内存管理)(一)
|
10月前
|
SQL 存储 分布式计算
什么是 Spark?Spark 的核心模块、Spark 的核心组件
什么是 Spark?Spark 的核心模块、Spark 的核心组件
326 0
|
10月前
|
分布式计算 Ubuntu Java
【Spark】一个例子带你了解Spark运算流程
【Spark】一个例子带你了解Spark运算流程
99 0
|
11月前
|
存储 分布式计算 Spark
SPARK中关于HighlyCompressedMapStatus的说明(会造成运行时的数据不精确)
SPARK中关于HighlyCompressedMapStatus的说明(会造成运行时的数据不精确)
71 0

相关实验场景

更多