当前位置: 首页 > news >正文

spark运行架构及核心组件介绍

目录

      • 1. Spark 的运行架构
        • 1.1 Driver
        • 1.2 Executor
        • 1.3 Cluster Manager
        • 1.4 工作流程
      • 2. Spark 的核心组件
        • 2.1 Spark Core
        • 2.2 Spark SQL
        • 2.3 Spark Streaming
        • 2.4 MLlib
        • 2.5 GraphX
      • 3. Spark 架构图
      • 4. Spark 的优势
        • 4.1 高性能
        • 4.2 易用性
        • 4.3 扩展性
        • 4.4 容错性
      • 5. 总结

1. Spark 的运行架构

Spark 的运行架构采用 Master-Slave 模式,主要由以下部分组成:

1.1 Driver
  • 定义
    • Driver 是 Spark 应用程序的主控节点,负责任务的调度和协调
  • 功能
    • 提交应用程序。
    • 将用户代码转换为 DAG(有向无环图)。
    • 将 DAG 划分为多个 Stage,并生成 Task。
    • 将 Task 分发给 Executor 执行。
    • 收集 Executor 的执行结果并返回给用户。
  • 运行位置
    • Driver 通常运行在客户端(Client 模式)或集群的主节点(Cluster 模式)。
1.2 Executor
  • 定义
    • Executor 是 Spark 的工作节点,负责实际执行任务
  • 功能
    • 接收 Driver 分发的 Task。
    • 执行 Task,处理数据。
    • 将计算结果返回给 Driver。
    • 提供内存存储(用于缓存 RDD 数据)。
  • 运行位置
    • Executor 运行在集群的工作节点上。
1.3 Cluster Manager
  • 定义
    • Cluster Manager 是 Spark 的资源管理组件,负责分配计算资源(如 CPU、内存)
  • 功能
    • 管理集群中的节点。
    • 为 Spark 应用程序分配资源。
    • 启动 Driver 和 Executor。
  • 支持的资源管理器
    • Standalone:Spark 自带的资源管理器。
    • YARN:Hadoop 的资源管理器。
    • Mesos:通用的资源管理器。
    • Kubernetes:容器化的资源管理器。
1.4 工作流程

Spark 的运行流程如下:

  1. 提交应用程序
    • 用户通过 Spark 提交应用程序,Driver 启动。
  2. 生成 DAG
    • Driver 将用户代码解析为 DAG 图,并划分为多个 Stage。
  3. 分发 Task
    • Driver 将 Task 分发给 Executor。
  4. 执行 Task
    • Executor 执行 Task,并将结果返回给 Driver。
  5. 返回结果
    • Driver 收集结果并返回给用户。

2. Spark 的核心组件

Spark 的核心组件包括 Spark Core 和多个扩展模块,以下是详细介绍:

2.1 Spark Core
  • 定义
    • Spark Core 是 Spark 的核心模块,提供基础的分布式计算功能
  • 功能
    • RDD(Resilient Distributed Dataset):提供分布式数据集的抽象
    • DAG 调度器:负责任务的调度和执行
    • 内存管理:支持数据缓存和持久化
    • Fault Tolerance(容错):支持数据的自动恢复
  • 作用
    • 为所有扩展模块提供底层支持。
2.2 Spark SQL
  • 定义
    • Spark SQL 是 Spark 的数据处理模块,支持结构化数据的查询和操作
  • 功能
    • DataFrame 和 Dataset:提供结构化数据的抽象。
    • SQL 查询:支持使用 SQL 语法查询数据。
    • Catalyst 优化器:自动优化查询计划。
  • 作用
    • 适用于结构化数据的处理场景,如数据仓库
2.3 Spark Streaming
  • 定义
    • Spark Streaming 是 Spark 的实时数据处理模块。
  • 功能
    • DStream(Discretized Stream):将实时数据划分为小批次处理。
    • 支持多种数据源:如 Kafka、Flume、Socket 等。
    • 容错机制:支持数据丢失的自动恢复。
  • 作用
    • 适用于实时数据处理场景,如日志分析、实时监控。
2.4 MLlib
  • 定义
    • MLlib 是 Spark 的机器学习库
  • 功能
    • 提供常用的机器学习算法:如分类、回归、聚类等。
    • 支持数据预处理:如特征提取、标准化。
    • Spark Core 深度集成,支持分布式计算。
  • 作用
    • 适用于大规模机器学习场景。
2.5 GraphX
  • 定义
    • GraphX 是 Spark 的图计算库
  • 功能
    • 提供图数据的表示:如顶点和边。
    • 支持常用的图算法:如 PageRank、Shortest Path。
  • 作用
    • 适用于图数据处理场景,如社交网络分析。

3. Spark 架构图

以下是 Spark 的运行架构图:

+-------------------+
|     Driver        |
|-------------------|
| - DAG Scheduler   |
| - Task Scheduler  |
| - RDD Management  |
|-------------------|
| Cluster Manager   |
+-------------------+|v
+-------------------+     +-------------------+
|    Executor 1     |     |    Executor 2     |
|-------------------|     |-------------------|
| - Task Execution  |     | - Task Execution  |
| - Data Storage    |     | - Data Storage    |
|-------------------|     |-------------------|
| Worker Node       |     | Worker Node       |
+-------------------+     +-------------------+

4. Spark 的优势

4.1 高性能
  • 支持内存计算,减少磁盘 I/O。
  • DAG 调度器优化任务执行。
4.2 易用性
  • 提供高级 API:如 DataFrame、Dataset。
  • 支持多种语言:Scala、Java、Python、R。
4.3 扩展性
  • 支持多种资源管理器:Standalone、YARN、Mesos、Kubernetes。
  • 支持多种数据源:HDFS、Kafka、Cassandra 等。
4.4 容错性
  • RDD 支持数据自动恢复。
  • 支持任务失败的重试机制。

5. 总结

组件功能适用场景
Spark Core提供分布式计算的基础功能所有场景
Spark SQL支持结构化数据的查询和操作数据仓库、ETL、BI
Spark Streaming支持实时数据处理日志分析、实时监控
MLlib提供分布式机器学习算法大规模机器学习
GraphX支持图数据处理社交网络分析、图计算

相关文章:

  • 使用go开发安卓程序
  • 用户线程和守护线程
  • 如何配置光猫+路由器实现外网IP访问内部网络?
  • 【MySQL】页结构详解:页的大小、分类、头尾信息、数据行、查询、记录及数据页的完整结构
  • C# Newtonsoft.Json 使用指南
  • 最大化效率和性能:AKS 中节点池的强大功能
  • Kubernetes排错(十一):lsof命令实战场景
  • 弹性Reasoning!通过RL训练控制推理预算,提升模型的推理能力和效率!
  • eNsp的使用
  • 招行数字金融挑战赛数据赛道赛题一
  • Appium-OppoA92S-真机记坑
  • MySQL 索引设计宝典:原理、原则与实战案例深度解析
  • 进程检测与控制
  • Spring框架(2)---AOP
  • STC-ISP烧录过程中显示“正在检测目标单片机...”
  • 互联网大厂Java求职面试实战:Spring Boot到微服务的技术问答解析
  • 视频编解码学习10之成像技术原理
  • ActiveMQ 生产环境问题排查与调优指南(二)
  • Java面试常见技术问题解析
  • 自然语言处理与BI融合实战:ChatBI动态语义解析技术架构剖析
  • 美国务卿鲁比奥将前往土耳其参加俄乌会谈
  • 持续8年仍难终了的纠纷:败诉方因拒执罪被立案,胜诉方银行账户遭冻结
  • 乌方:泽连斯基只接受与普京会谈,拒见其他俄代表
  • 周启鸣加盟同济大学,曾任香港浸会大学深圳研究院院长
  • 人民空军:网上出现的“运-20向外方运送物资”为不实消息
  • 四姑娘山一游客疑因高反身亡,镇卫生院:送到时已很严重