9.3 Spark运行架构 93.1基本概念 93.2架构设计 9.33Spak运行基本流程 9.34Spak运行原理
9.3 Spark运行架构 9.3.1 基本概念 9.3.2 架构设计 9.3.3 Spark运行基本流程 9.3.4 Spark运行原理
93.1基本概念 RDD:是 Resillient distributed dataset(弹性分布式数据集)的简称,是分布 式内存的一个抽象概念,提供了一种高度受限的共享内存模型 ΦDAG:是 Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依 赖关系 Executor:是运行在工作节点( Worker Node)的一个进程,负责运行Task Application:用户编写的 Spark应用程序 Task:运行在 Executor上的工作单元 Job:一个Job包含多个RDD及作用于相应RDD上的各种操作 Stage:是Job的基本调度单位,一个Job会分为多组Task,每组Task被称为 Stage,或者也被称为 Task Set,代表了一组关联的、相互之间没有 Shuffle依 赖关系的任务组成的任务集
9.3.1 基本概念 •RDD:是Resillient Distributed Dataset(弹性分布式数据集)的简称,是分布 式内存的一个抽象概念,提供了一种高度受限的共享内存模型 •DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依 赖关系 •Executor:是运行在工作节点(WorkerNode)的一个进程,负责运行Task •Application:用户编写的Spark应用程序 •Task:运行在Executor上的工作单元 •Job:一个Job包含多个RDD及作用于相应RDD上的各种操作 •Stage:是Job的基本调度单位,一个Job会分为多组Task,每组Task被称为 Stage,或者也被称为TaskSet,代表了一组关联的、相互之间没有Shuffle依 赖关系的任务组成的任务集
932架构设计 spark运行架构包括集群资源管理器( Cluster Manager)、运行作业任务的 工作节点( Worker node)、每个应用的任务控制节点( Driver)和每个工 作节点上负责具体任务的执行进程( Executor) 资源管理器可以自带或 Mesos或YARN 与 Hadoop MapReduce计算框架相比, Spark所釆用的 Executor有两个优点 是利用多线程来执行具体的任务,减少任务的启动开销 二是 Executor中有一个 BlockManager存储模块,会将内存和磁盘共同作为存 储设备,有效减少O开销 Worker node Executor Driver Program Spark Context Cluster Manager Worker node 图16-5Spak运行架构
9.3.2 架构设计 图16-5 Spark运行架构 •Spark运行架构包括集群资源管理器(Cluster Manager)、运行作业任务的 工作节点(Worker Node)、每个应用的任务控制节点(Driver)和每个工 作节点上负责具体任务的执行进程(Executor) •资源管理器可以自带或Mesos或YARN 与Hadoop MapReduce计算框架相比,Spark所采用的Executor有两个优点: •一是利用多线程来执行具体的任务,减少任务的启动开销 •二是Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存 储设备,有效减少IO开销
932架构设计 个 Application由一个 Driver:和若干个Job构成,一个Job由多个 Stage构 成,一个 Stage由多个没有 Shuffle关系的Task组成 ·当执行一个 Application时, Driver会向集群管理器申请资源,启动 Executor,并向 Executor发送应用程序代码和文件,然后在 Executor上执行 Task,运行结束后,执行结果会返回给 Driver,或者写到HDFS或者其他数 据庐 Task I Task Task N Job 1 Driver Program Task I>:· Task N Task N Job 2 Application 图16-6 Spark中各种概念之间的相互关系
9.3.2 架构设计 图16-6 Spark中各种概念之间的相互关系 •一个Application由一个Driver和若干个Job构成,一个Job由多个Stage构 成,一个Stage由多个没有Shuffle关系的Task组成 •当执行一个Application时,Driver会向集群管理器申请资源,启动 Executor,并向Executor发送应用程序代码和文件,然后在Executor上执行 Task,运行结束后,执行结果会返回给Driver,或者写到HDFS或者其他数 据库中 Driver Program Application Job 1 Task 1 Task N Stage 1 Task 1 Task N Stage N Job 2 Task 1 Task N Stage 1 Task 1 Task N Stage N