大数据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博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
相关推荐
FLGB20 分钟前
Kafka延迟队列实现分级重试
分布式·kafka
莹雨潇潇3 小时前
大数据时代的隐私与自由(演讲稿)
大数据
dogplays3 小时前
Doris Streamloader安装教程
大数据
哲讯智能科技9 小时前
智慧能源新篇章:SAP如何赋能光伏行业数字化转型
大数据·人工智能
java1234_小锋11 小时前
Kafka中的消息是如何存储的?
分布式·kafka
老友@11 小时前
Kafka 深度解析:高性能设计、部署模式、容灾机制与 KRaft 新模式
分布式·kafka·kraft·高性能·容灾机制
余子桃11 小时前
Kafka的安装与使用(windows下python使用等)
分布式·kafka
嘟嘟嘟嘟嘟嘟嘟.11 小时前
MapReduce的工作原理
大数据·mapreduce
java1234_小锋11 小时前
Kafka中的消息如何分配给不同的消费者?
分布式·kafka
小样vvv11 小时前
【Kafka】深入探讨 Kafka 如何保证一致性
分布式·kafka