在 Apache Spark 中,系统的整体运行框架由哪些核心部分组成?请列明其主要组件及各组件在计算流程中的作用。
考察说明
考查对 Spark 分布式计算架构整体框架和核心组件的理解。
回答思路
- 【回答框架 1】Spark 采用主从架构,核心组件包括 Cluster Manager、Driver 和 Executor。Driver 负责解析用户代码、生成 DAG 并调度任务,Cluster Manager 负责资源分配与回收。
- 【回答框架 2】Executor 运行在 Worker 节点上,负责执行具体任务并进行数据缓存。每个 Executor 可运行多个 Task,Task 是 Spark 执行的最小工作单元。
- 【回答框架 3】在 Spark 2.0 之后,引入了 SparkSession 作为统一入口,整合了 SQL、Streaming 等不同 API。此外,RDD、DataFrame、DataSet 是不同层面的数据抽象。
- 【回答框架 4】整个流程包括:Driver 将应用转化为 DAG,交由 DAGScheduler 拆分为 Stage,TaskScheduler 再将 Stage 分解为 Task 并分发到 Executor 执行。
- 【关键点 1】Spark 架构为主从模式,Driver 是应用入口,负责调度。
- 【关键点 2】Cluster Manager 负责集群资源管理,支持 Standalone、YARN、Mesos 等。
- 【关键点 3】Executor 是计算执行单元,执行任务并缓存数据。
- 【关键点 4】DAGScheduler 将 DAG 划分 Stage,TaskScheduler 负责任务分发。
- 【易错点 1】不少候选人混淆 RDD 与计算引擎的关系,记住 RDD 只是数据抽象,不是调度组件。
- 【易错点 2】不要忽视 Driver 崩溃会导致整个应用失败,这是架构单点。