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

文章目录

Spark生态模块与运行模式

一、Spark生态模块

二、Spark运行模式


Spark生态模块与运行模式

一、Spark生态模块

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

复制代码
  +-------------------+     +-------------------+
  |   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。


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
相关推荐
萤丰信息8 分钟前
技术赋能安全:智慧工地构建城市建设新防线
java·大数据·开发语言·人工智能·智慧城市·智慧工地
Viking_bird1 小时前
Apache Spark 3.2.0 开发测试环境部署指南
大数据·分布式·ajax·spark·apache
励志成为糕手2 小时前
企业级Spring事务管理:从单体应用到微服务分布式事务完整方案
分布式·spring·微服务·隔离级别·事务管理
用户199701080182 小时前
抖音商品列表API技术文档
大数据·数据挖掘·数据分析
Fireworkitte3 小时前
Kafka的ISR、OSR、AR详解
分布式·kafka·ar
数据皮皮侠5 小时前
最新上市公司业绩说明会文本数据(2017.02-2025.08)
大数据·数据库·人工智能·笔记·物联网·小程序·区块链
计算机毕设-小月哥7 小时前
完整源码+技术文档!基于Hadoop+Spark的鲍鱼生理特征大数据分析系统免费分享
大数据·hadoop·spark·numpy·pandas·计算机毕业设计
Jinkxs7 小时前
AI重塑金融风控:从传统规则到智能模型的信贷审批转型案例
大数据·人工智能
时序数据说14 小时前
时序数据库市场前景分析
大数据·数据库·物联网·开源·时序数据库
2501_9301040418 小时前
GitCode 疑难问题诊疗:全方位指南
大数据·elasticsearch·gitcode