Spark架构

简介: 【4月更文挑战第26天】架构对于技术来说,是技术的灵魂。

架构对于技术来说,是技术的灵魂,它体现了技术对于需求的取舍,决定了技术的优点与缺点。Spark的架构也是如此,在分布式技术中,架构无非两种,即主从架构(master-slave)和点对点架构(p2p), Spark采取了前者,也是MapReduce的选择——主从架构。

Spark程序的入口是Driver中的SparkContext。与Spark 1.x相比,在Spark 2.0中,有一个变化是用SparkSession统一了与用户交互的接口,曾经熟悉的SparkContext、SqlContext、HiveContext都是SparkSession的成员变量,这样更加简洁。SparkContext的作用是连接用户编写的代码与运行作业调度和任务分发的代码。


当用户启动一个Driver程序时,会通过SparkContext向集群发出命令,Executor会遵照指令执行任务。一旦整个执行过程完成,Driver结束整个作业。ClusterManager负责所有Executor的资源管理和调度,根据底层资源管理和调度平台的不同,ClusterManager可以有多种选择,对应了多种资源管理平台,如YARN的ResourceManager与Mesos的ClusterManager,此外Executor也会根据资源管理平台的不同运行在不同的容器中。


Driver解析用户编写的代码,并序列化字节级别的代码,这些代码将会被分发至将要执行的Executor上。当执行Spark作业时,这些计算过程实际上是在每个节点本地计算并完成。

首先Driver根据用户编写的代码生成一个计算任务的有向无环图(Directed Acyclic Graph, DAG),接着,DAG会根据RDD(弹性分布式数据集)之间的依赖关系被DAGScheduler切分成由Task组成的Stage(TaskSet), TaskScheduler会通过ClusterManager将任务调度到Executor上执行。在DAG中,每个Task的输入就是一个Partition(分区),而一个Executor同时只能执行一个Task,但一个Worker(物理节点)上可以同时运行多个Executor。


在Spark的架构中,Driver主要负责作业调度工作,Executor主要负责执行具体的作业计算任务,ClusterManager主要负责资源管理和调度,Driver中还有几个重要的组件——SparkContext、DAGScheduler、TaskScheduler。Driver是整个架构中最重要的角色,它通过监控和管理整个执行过程保证了一切按照计划正常运行,此外它还在Spark容错中起到了重要的作用。


在MapReduce这类型的计算框架中,中间结果的传输是整个计算过程中最重要的一个步骤,Spark也是如此,在Spark作业中,这也是Stage划分的依据,我们称之为数据混洗(Shuffle)。

相关文章
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
149 6
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
64 2
|
19天前
|
分布式计算 大数据 Apache
Apache Spark & Paimon Meetup · 北京站,助力 LakeHouse 架构生产落地
2024年11月15日13:30北京市朝阳区阿里中心-望京A座-05F,阿里云 EMR 技术团队联合 Apache Paimon 社区举办 Apache Spark & Paimon meetup,助力企业 LakeHouse 架构生产落地”线下 meetup,欢迎报名参加!
85 3
|
1月前
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
47 0
|
1月前
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
39 0
|
1月前
|
SQL 存储 分布式计算
大数据-93 Spark 集群 Spark SQL 概述 基本概念 SparkSQL对比 架构 抽象
大数据-93 Spark 集群 Spark SQL 概述 基本概念 SparkSQL对比 架构 抽象
40 0
|
6月前
|
分布式计算 资源调度 Spark
Spark的一些问题汇总 及 Yarn与Spark架构的对比
Spark的一些问题汇总 及 Yarn与Spark架构的对比
71 0
|
分布式计算 Spark 容器
Spark 架构和组件集的简要概述
Spark 架构和组件集的简要概述   Flex 4 提供的 Spark 组件 Flex 4 目前提供各种 Spark 组件。Flex 的后续版本将提供更多 Spark 控件,与 MX 组件集并驾齐驱。
|
18天前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
52 2
ClickHouse与大数据生态集成:Spark & Flink 实战