IT大数据

【Spark】Spark 基本概念、模块和架构

2018-10-24  本文已影响122人  w1992wishes

本文结构如下:

一、基本概念

附:spark中job stage task关系

二、基本模块

整个 Spark 主要由以下模块组成:

Spark SQL、Spark Streaming、GraphX、MLlib的能力都是建立在核心引擎之上:

三、基本架构

Spark 集群由集群管理器 Cluster Manager、工作节点 Worker、执行器 Executor、驱动器 Driver、应用程序 Application 等部分组成。

3.1、Cluter Manager

Spark 的集群管理器,主要负责对整个集群资源的分配和管理。根据部署模式的不同,可以分为如下:

3.2、Worker

Spark 的工作节点,用于执行提交的作业。在 YARN 部署模式下 Worker 由 NodeManager 代替。

Worker 有如下作用:

3.3、Executor

真正执行计算任务的组件。

Executor 是某个 Application 运行在 Worker 节点上的一个进程,该进程负责运行某些 Task, 并且负责将数据存到内存或磁盘上,每个 Application 都有各自独立的一批 Executor, 在 Spark on Yarn 模式下,其进程名称为 CoarseGrainedExecutor Backend。一个 CoarseGrainedExecutor Backend 有且仅有一个 Executor 对象, 负责将 Task 包装成 taskRunner,并从线程池中抽取一个空闲线程运行 Task, 每个 CoarseGrainedExecutorBackend 能并行运行 Task 的数量取决于分配给它的 CPU 的个数。

3.4、Driver

Application 的驱动程序。可以理解为使程序运行中的 main 函数,它会创建 SparkContext。Application 通过 Driver 与 Cluster Master 和 Executor 进行通信。Driver 可以运行在 Application 中,也可以由 Application 提交给 Cluster Master,由 Cluster Master 安排 Worker 运行。

Driver 的作用:

3.5、Application

用户使用 Spark API 编写的的应用程序,其中包括一个 Driver 功能的代码和分布在集群中多个节点上运行的 Executor 代码。

Application 通过 Spark API 创建 RDD,对 RDD 进行转换,创建 DAG,并通过 Driver 将 Application 注册到 Cluster Master。

上一篇下一篇

猜你喜欢

热点阅读