Spark 架构

17 Mar 2025 | 阅读 2 分钟

Spark 采用主从架构。它的集群由一个主节点和多个从节点组成。

Spark 架构依赖于两个抽象概念

  • 弹性分布式数据集 (RDD)
  • 有向无环图 (DAG)

弹性分布式数据集 (RDD)

弹性分布式数据集是一组数据项,可以存储在工作节点的内存中。这里,

  • 弹性:在出现故障时恢复数据。
  • 分布式:数据分布在不同的节点之间。
  • 数据集:数据组。

我们稍后会详细了解 RDD。

有向无环图 (DAG)

有向无环图是一个有限的有向图,它对数据执行一系列计算。每个节点都是一个 RDD 分区,边是对数据进行转换。在这里,图指的是导航,而有向和无环则指出了它的执行方式。

让我们了解一下 Spark 架构。

Spark Architecture

驱动程序

驱动程序是一个运行应用程序的 main() 函数并创建 SparkContext 对象的进程。SparkContext 的目的是协调 Spark 应用程序,这些应用程序作为独立的一组进程在集群上运行。

要在集群上运行,SparkContext 连接到不同类型的集群管理器,然后执行以下任务:-

  • 它在集群中的节点上获取执行器。
  • 然后,它将您的应用程序代码发送给执行器。在这里,应用程序代码可以通过传递给 SparkContext 的 JAR 或 Python 文件来定义。
  • 最后,SparkContext 将任务发送给执行器以运行。

集群管理器

  • 集群管理器的作用是在应用程序之间分配资源。 Spark 能够运行在大量集群上。
  • 它由各种类型的集群管理器组成,例如 Hadoop YARN、Apache Mesos 和独立调度程序。
  • 在这里,独立调度程序是一个独立的 Spark 集群管理器,它有助于在空闲的机器上安装 Spark。

工作节点

  • 工作节点是从节点
  • 它的作用是在集群中运行应用程序代码。

Executor

  • 执行器是为集群上的应用程序启动的进程。
  • 它运行任务并将数据保存在内存或磁盘存储中。
  • 它从外部源读取和写入数据。
  • 每个应用程序都包含其执行器。

任务

  • 将发送到一个执行器的工作单元。

下一个主题Spark 组件