前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >大数据Spark(五十六):Spark生态模块与运行模式

大数据Spark(五十六):Spark生态模块与运行模式

作者头像
Lansonli
发布2025-05-24 09:55:47
发布2025-05-24 09:55:47
21000
代码可运行
举报
文章被收录于专栏:Lansonli技术博客Lansonli技术博客
运行总次数:0
代码可运行

Spark生态模块与运行模式

一、Spark生态模块

Spark 生态模块包括:SparkCore、SparkSQL、SparkStreaming、StructuredStreaming、MLlib 和 GraphX。与 Hadoop 相关的整个技术生态如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
  +-------------------+     +-------------------+
  |   Spark 应用层    |     |   Hadoop 应用层   |
  +-------------------+     +-------------------+
  | Spark SQL         | <-->| Hive             |  (兼容 HiveQL, 元数据共享)
  | StructuredStreaming| <->| Kafka/Flume      |  (流数据源集成)
  | MLlib             | <-->| HDFS/HBase       |  (读取训练数据/存储模型)
  | GraphX            | <-->| HDFS             |  (图数据存储)
  +-------------------+     +-------------------+
           ↓                           ↓
  +---------------------------------------------------+
  |            Spark 计算引擎层 (Spark Core)          |
  |  (替代 MapReduce,运行于 YARN/Mesos/K8s 资源层)    |
  +---------------------------------------------------+
           ↓                           ↓
  +-------------------+     +-----------------------+
  | Hadoop 资源管理层  |     | Hadoop 分布式存储层    |
  | YARN              |     | HDFS                  |
  | (资源调度与分配)    |     | (数据持久化存储)        |
  +-------------------+     +-----------------------+
           ↓                           ↓
  +---------------------------------------------------+
  |           底层基础设施(物理/虚拟化集群)           |
  +---------------------------------------------------+

下面分别介绍Spark各个模块功能。

  • SparkCore

Spark Core 是 Spark 的核心模块,提供了基本的功能和 API,包括任务调度、内存管理、故障恢复等,它实现了弹性分布式数据集(RDD)的概念,支持对分布式数据集的并行操作,Spark其他模块都是基于 Spark Core 构建。

  • SparkSQL

Spark SQL 模块用于处理结构化数据,支持使用标准SQL 进行数据分析、查询,SparkSQL中还提供了 DataFrame 和 Dataset API,方便开发者以声明式方式操作数据。此外,Spark SQL 还支持与 Hive 的集成,可以直接查询 Hive 仓库中的数据。

  • SparkSteaming

SparkStreaming 是基于 SparkCore 模块实现的,用于实时处理流数据的模块。它将实时数据流分成小批次,然后通过类似于 Spark Core 的 API 进行准实时数据处理。

  • StructuredStreaming

StructuredStreaming 是基于 SparkSQL 模块构建的可扩展且容错的流处理模块。它提供了一种统一的编程模型,使开发者能够以 SQL 方式编写流式计算操作,可以轻松地对流数据进行转换、聚合和分析。

  • MLlib

MLlib 模块是 Spark 的机器学习库,提供了常用的机器学习算法和工具,如分类、回归、聚类、协同过滤等。它利用 Spark 的分布式计算能力,能够处理大规模数据集上的机器学习任务。

  • GraphX

GraphX 模块用于图计算,提供了用于表示图和执行图操作的 API。它支持常见的图算法,如 PageRank、连接组件等,方便开发者进行复杂的图数据分析。

二、Spark运行模式

Apache Spark 提供了多种运行模式,以适应不同的开发、测试和生产环境需求。这些模式包含Local Mode、Standalone Mode、Spark On Yarn、Spark On Mesos、Spark On K8s,下面分别介绍。

  • 本地模式(Local Mode)

在本地模式下,Spark 应用程序在单台机器上运行,利用多线程模拟分布式计算。此模式适用于开发和测试阶段,方便调试和验证应用程序逻辑。可以通过指定线程数来控制并行度,例如:local[4] 表示使用 4 个线程。

  • 独立模式(Standalone Mode)

Standalone 模式是 Spark 自带的资源调度系统,无需依赖外部集群管理器。在此模式下,集群由一个主节点(Master)和多个工作节点(Worker)组成。应用程序提交到主节点后,主节点负责将任务分配给各个工作节点执行。此模式适用于中小型集群,配置和管理相对简单。

  • YARN 模式(Spark on YARN)

在 YARN 模式下,Spark 运行在 Hadoop 的 YARN(Yet Another Resource Negotiator)集群管理器上。YARN 提供资源管理和作业调度功能,使 Spark 能够与其他大数据应用程序共享集群资源。此模式适用于已经部署了 Hadoop 集群的环境,便于资源的统一管理。

  • Mesos 模式(Spark on Mesos)

Mesos 是一个分布式系统内核,可用于管理集群资源。在 Mesos 模式下,Spark 可以与其他框架(如 Apache Hadoop、Apache Storm)共享集群资源,实现资源的高效利用。此模式在国外使用居多。

  • Kubernetes 模式(Spark on Kubernetes)

Kubernetes 是一个开源的容器编排平台。在 Kubernetes 模式下,Spark 应用程序以容器的形式运行,Kubernetes 负责容器的调度和管理。此模式适用于已经采用容器化技术的环境,提供了更好的弹性和可移植性。

在实际Spark开发中,Spark运行模式使用最多的是基于Yarn。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spark生态模块与运行模式
    • 一、Spark生态模块
    • 二、Spark运行模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档