📜  Apache Spark架构

📅  最后修改于: 2020-12-27 02:34:18             🧑  作者: Mango

Spark架构

Spark遵循主从架构。它的集群由一个主机和多个从机组成。

Spark体系结构取决于两个抽象:

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

弹性分布式数据集(RDD)

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

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

稍后我们将详细了解RDD。

有向无环图(DAG)

有向无环图是对数据执行一系列计算的有限直接图。每个节点都是RDD分区,边缘是数据之上的转换。在此,图形是指导航,而有向和无环是指导航的完成方式。

让我们了解一下Spark架构。

驱动程序

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

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

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

集群管理器

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

工作节点

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

执行者

  • 执行程序是为工作节点上的应用程序启动的过程。
  • 它运行任务并将数据跨它们保留在内存或磁盘存储中。
  • 它将数据读写到外部源。
  • 每个应用程序都包含其执行程序。

任务

  • 一种工作单元,将发送给一个执行者。