9.32架构设计 spark运行架构包括集群资源管理器( Cluster Manager)、运行作业任务的 工作节点( Worker node)、每个应用的任务控制节点( Driver)和每个工 作节点上负责具体任务的执行进程( Executor) 资源管理器可以自带或 Mesos或YARN 与 Hadoop MapReduce计算框架相比, Spark所采用的 Executor有两个优点: 一是利用多线程来执行具体的任务,减少任务的启动开销 二是 Executor中有一个 BlockManager存储模块,会将内存和磁盘共同作为存 储设备,有效减少O开销 Worker node Executor Cache Task Driver program Spark Context Cluster Manager Worker node Executor Cache Task 图16-5 Spark运行架构 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 9.3.2 架构设计 SparkContext Driver Program Cluster Manager Worker Node Cache Task Task Executor Worker Node Cache Task Task Executor 图16-5 Spark运行架构 •Spark运行架构包括集群资源管理器(Cluster Manager)、运行作业任务的 工作节点(Worker Node)、每个应用的任务控制节点(Driver)和每个工 作节点上负责具体任务的执行进程(Executor) •资源管理器可以自带或Mesos或YARN 与Hadoop MapReduce计算框架相比,Spark所采用的Executor有两个优点: •一是利用多线程来执行具体的任务,减少任务的启动开销 •二是Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存 储设备,有效减少IO开销
9.32架构设计 个App| cation由一个 Driver和若干个Job构成,一个Job由多个 Stage构成, 个 Stage由多个没有 Shuffle关系的Tsk组成 执行一个 Application时, Driver会向集群管理器申请资源,启动 Executor, 并向 Executor发送应用程序代码和文件,然后在 Executor上执行Task,运 行结束后,执行结果会返回给 Driver,或者写到HDFS或者其他数据库中 age Task1>· Task N Task I Task N Job 1 Driver program Stage I Task I Task N Task I Task N Application 图16-6 Spark中各种概念之间的相互关系 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 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 .. .. ..
9.33Spak运行基本流程 1)首先为应用构建起基本的 运行环境,即由 Driver创建一个 Spark Context Spark Context,进行资源的申请 1:注册并申请资源 RDD Objects 资源管理器 任务的分配和监控 构建DAG图 分配并监控资源使用情况 (2)资源管理器为 Executor分 4:注销 配资源,并启动 Executor进程 DAG图 (3) Spark Context根据RDD的 依赖关系构建DAG图,DAG图 DAG Scheduler 3:注册并申请Task 提交给 DAGScheduler解析成 将DAG图分解成 Stage Stage,然后把一个个 Task Set提 Taskset 、/2分源交给底层调度器 Taskscheduler 处理; Executor向 SparkContext Task Scheduler 资源 申请Iask, Task Scheduler将 Iask发放给 Executor运行,并提 提交和监控Task Task Executor进程 匚报资源使用状况 供应用程序代码 (4)Task在 Executor上运行, 图16-7Spak运行基本流程图 把执行结果反馈给 Task Scheduler,然后反馈给 DAGScheduler,运行完毕后写 入数据并释放所有资源 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 9.3.3 Spark运行基本流程 图16-7 Spark运行基本流程图 SparkContext RDD Objects 构建DAG图 DAG Scheduler 将DAG图分解成Stage Task Scheduler 提交和监控Task DAG图 Taskset 资源管理器 分配并监控资源使用情况 资源 Executor进程 汇报资源使用状况 1: 注册并申请资源 4: 注销 3: 注册并申请Task 2: 分配资源 Task (1)首先为应用构建起基本的 运行环境,即由Driver创建一个 SparkContext,进行资源的申请 、任务的分配和监控 (2)资源管理器为Executor分 配资源,并启动Executor进程 (3)SparkContext根据RDD的 依赖关系构建DAG图,DAG图 提交给DAGScheduler解析成 Stage,然后把一个个TaskSet提 交给底层调度器TaskScheduler 处理;Executor向SparkContext 申请Task,Task Scheduler将 Task发放给Executor运行,并提 供应用程序代码 (4)Task在Executor上运行, 把执行结果反馈给 TaskScheduler,然后反馈给 DAGScheduler,运行完毕后写 入数据并释放所有资源