学校网站cms,linux 网站配置,网站上传空间的ip地址吗,用dw制作个人简介网页步骤目录 10.3 Spark运行架构
10.3.1 基本概念
10.3.2 架构设计 编辑
10.3.3 Spark运行基本流程
Spark运行架构特点 10.3 Spark运行架构 10.3.1 基本概念 RDD #xff1a;是 Resillient Distributed Dataset #xff08;弹性分布式数据集#xff09;的简称#xff0c;是分…目录 10.3 Spark运行架构
10.3.1 基本概念
10.3.2 架构设计 编辑
10.3.3 Spark运行基本流程
Spark运行架构特点 10.3 Spark运行架构 10.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 依赖关系的任务组成的任务 集 10.3.2 架构设计 Spark 运行架构包括集群资源管理器 Cluster Manager 、运行作业任务的工作 节点 Worker Node 、每个应用的任务控制 节点 Driver 和每个工作节点上负责具体任务的执行进程 Executor 。其中集群管理器 可以自带 或 使用 Mesos 、 YARN 等资源管理框架。 与Hadoop MapReduce计算框架相比Spark所采用的Executor有两个优点 Ø 一是利用多线程来执行具体的任务减少任务的启动 开销。 Ø 二是 Executor 中有一个 BlockManager 存储模块会将内存和磁盘共同作为存储设备有效减少 IO 开销。 一个 Application 由一个 Driver 和若干个 Job 构成一个 Job 由多个 Stage 构成一个 Stage 由多个没有 Shuffle 关系的 Task 组成 。 当执行一个 Application 时 Driver 会向集群管理器申请资源启动 Executor 并向 Executor 发送应用程序代码和文件然后在 Executor 上执行 Task 运行结束后执行结果会返回给 Driver 或者写到 HDFS 或者其他数据库 中 。 10.3.3 Spark运行基本流程
1首先为应用构建起基本的运行环境即由Driver创建一个SparkContext进行资源的申请、任务的分配和监控
2资源管理器为Executor分配资源并启动Executor进程
3SparkContext根据RDD的依赖关系构建DAG图DAG图提交给DAGScheduler解析成Stage然后把一个个TaskSet提交给底层调度器TaskScheduler处理Executor向SparkContext申请TaskTask Scheduler将Task发放给Executor运行并提供应用程序代码。 4Task在Executor上运行把执行结果反馈给TaskScheduler然后反馈给DAGScheduler运行完毕后写入数据并释放所有资源 Spark运行架构特点
总体而言Spark运行架构具有以下特点
1每个Application都有自己专属的Executor进程并且该进程在Application运行期间一直驻留。Executor进程以多线程的方式运行Task
2Spark运行过程与资源管理器无关只要能够获取Executor进程并保持通信即可
3Task采用了数据本地性和推测执行等优化机制 数据本地 性指的是尽量计算移动到数据所在的节点即“计算向数据靠拢”因为移动计算比移动数据比所占的网络资源要少的多。 Spark 还采用了延时调度机制可以在更大程度上实现执行过程优化。比如数据节点当前正被其他的任务占用那么在这种情况下是否需要将数据移动到其他的空闲节点上不一定。