Spark2.0

目录

[10.3 Spark运行架构](#10.3 Spark运行架构)

[10.3.1 基本概念](#10.3.1 基本概念)

[10.3.2 架构设计](#10.3.2 架构设计)

​编辑

[10.3.3 Spark运行基本流程](#10.3.3 Spark运行基本流程)

Spark运行架构特点


10.3Spark运行架构

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进程

(3)SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器TaskScheduler处理;Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor运行,并提供应用程序代码。

(4)Task在Executor上运行,把执行结果反馈给TaskScheduler,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源

Spark运行架构特点

总体而言,Spark运行架构具有以下特点:

(1)每个Application都有自己专属的Executor进程,并且该进程在Application运行期间一直驻留。Executor进程以多线程的方式运行Task

(2)Spark运行过程与资源管理器无关,只要能够获取Executor进程并保持通信即可

(3)Task采用了数据本地性和推测执行等优化机制
数据本地 性,指的是尽量计算移动到数据所在的节点,即"计算向数据靠拢",因为移动计算比移动数据比所占的网络资源要少的多。
Spark 还采用了延时调度机制,可以在更大程度上实现执行过程优化。比如数据节点当前正被其他的任务占用,那么在这种情况下是否需要将数据移动到其他的空闲节点上?不一定。

相关推荐
Robot25129 分钟前
「地平线」副总裁余轶南与「理想汽车」智驾产品总监赵哲伦联手创业,入局具身智能赛道!
大数据·人工智能·机器人·汽车
浙江洲际检测认证42 分钟前
一分钟快速了解Ecovadis认证等级划分
大数据
java1234_小锋1 小时前
ElasticSearch如何做性能优化?
大数据·elasticsearch·性能优化
Tester_孙大壮2 小时前
运维相关知识科普
大数据·运维·数据库
xserver23 小时前
hadoop搭建
大数据·linux·hadoop
小刘鸭!11 小时前
Flink中并行度和slot的关系——任务和任务槽
大数据·flink
LI JS@你猜啊12 小时前
Elasticsearch 集群
大数据·服务器·elasticsearch
筒栗子12 小时前
复习打卡大数据篇——Hadoop HDFS 03
大数据·hadoop·hdfs
SelectDB15 小时前
Apache Doris 创始人:何为“现代化”的数据仓库?
大数据·数据库·云原生
SelectDB15 小时前
飞轮科技荣获中国电信星海大数据最佳合作伙伴奖!
大数据·数据库·数据分析