什么是 Apache Spark?

Apache Spark 是一个用于进行大规模数据处理的统一分析引擎,内置了用于 SQL、流式传输、机器学习和图处理的模块。Spark 可在 Kubernetes、独立集群或云原生环境中运行,支持多种数据源。它提供丰富的 Java、Scala、Python (PySpark) 和 R API,使其适合广泛的开发者和数据科学家使用。

在 Google Cloud 上,Apache Spark 转型为“数据到 AI”平台,并提供 Managed Service for Apache Spark。Google Cloud 利用托管式集群或无服务器 Spark 选项和 Lightning Engine 等突破性性能增强功能,解决了与传统 Spark 部署关联的“调优负担”问题。深度集成到统一的数据和 AI 平台中,让用户能够比以往更快地将原始数据转化为 AI 驱动的行动。

Apache Spark 概览

Spark 生态系统包含五个关键组件:

  • Spark Core 是一个通用的分布式数据处理引擎。它是基础执行引擎,管理分布式任务调度、安排和基本的 I/O。Spark Core 引入了弹性分布式数据集 (RDD) 的概念,即不可变的对象分布式集合,可通过容错机制并行处理。在其上有 SQL、流处理、机器学习和图计算的库,所有这些库都可以在应用中一起使用。
  • Spark SQL 是用于处理结构化数据的 Spark 模块,它引入了 DataFrames,相较于 RDD 提供了更优化、更适合开发者使用的 API,用于结构化数据处理。它支持您使用 SQL 或熟悉的 DataFrame API 在 Spark 程序中查询结构化数据。Spark SQL 支持 HiveQL 语法,并允许访问现有的 Apache Hive 仓库。Google Cloud 利用 Lightning Engine 等创新技术进一步提升 Spark 作业性能,尤其是 SQL 和 DataFrame 操作,从而在 Google Cloud 上运行 Spark 时显著加快查询和数据处理任务的速度。
  • Spark Streaming 支持轻松构建可扩缩、具有容错性的流式解决方案。它将 Spark 的语言集成 API 引入流处理,因此您可以像编写批处理作业一样编写流式作业,无论是使用 DStreams 还是基于 DataFrame 构建的较新 Structured Streaming API 都可以。Spark Streaming 支持 Java、Scala 和 Python,具备开箱即用的有状态“恰好一次”语义。
  • MLlib 是 Spark 可扩容的机器学习库,它所提供的工具可以简化实际的机器学习并为其扩容。MLlib 包含许多常见的学习算法,例如分类、回归、推荐和聚类。它还包含工作流和其他实用工具,包括特征转换、机器学习流水线构建、模型评估、分布式线性代数和统计分析。与 Gemini Enterprise Agent Platform 结合使用时,Spark MLlib 工作流可以无缝集成到 MLOps 流水线中,并可利用 Gemini 进行编码和问题排查,增强开发能力。
  • GraphX 是用于图和图并行计算的 Spark API。它非常灵活,可以无缝处理图和集合 - 统一提取、转换和加载;进行探索性分析;在一个系统中迭代图计算。

Apache Spark 生态系统和组件

Spark 生态系统包含五个关键组件,每个组件都凭借 Google Cloud 的基础设施得到强化:

  • Spark Core:基础执行引擎,管理分布式任务调度和 I/O。它引入了弹性分布式数据集 (RDD),即不可变的对象分布式集合,可并行处理并具备容错机制。
  • Spark SQL:使用 DataFrames 处理结构化数据的模块。Google Cloud 利用 Lightning Engine 进一步加速这些操作,无需手动调优即可显著提升速度。
  • Spark Streaming:支持为批量作业和实时作业构建可扩缩、具有容错能力的流式解决方案。
  • MLlib:可扩缩的机器学习库。与 Gemini Enterprise Agent Platform 结合使用时,MLlib 工作流可以无缝集成到 MLOps 流水线中,并可利用 Gemini 进行编码和问题排查,增强开发能力。
  • GraphX:用于图和图并行计算的 API。

Apache Spark 有哪些优势?

速度

与基于磁盘的处理引擎相比,Spark 的内存处理和 DAG 调度程序可让工作负载更快地完成,尤其是迭代任务。Google Cloud 借助优化的基础架构和 Lightning Engine 提升了处理速度。

易用性

Spark 的高级 Operator 可简化并行应用的构建。通过 Scala、Python、R 和 SQL 以交互方式使用 Spark 可实现快速开发。Google Cloud 提供无服务器选项,并提供与 Gemini 集成的笔记本。

可伸缩性

Spark 提供横向可伸缩性,通过在集群节点之间分配工作来处理大量数据。Google Cloud 通过无服务器自动扩缩和灵活的托管式集群简化了扩缩操作。

通用性

Spark 为多种库提供驱动支持,包括 SQL 与 DataFrame、用于机器学习的 MLlib、GraphX,以及 Spark Streaming您可以在同一应用中无缝地组合使用这些库。

开源框架创新性

Spark 利用开源社区的力量快速创新和解决问题。Google Cloud 秉承这种开放精神,提供标准 Apache Spark 并增强其功能。

为何要选择 Spark 而非仅支持 SQL 的引擎?

Apache Spark 是一种快速的通用集群或无服务器计算引擎。借助 Spark,程序员可以使用 Java、Scala、Python、R 和 SQL 快速编写应用,这使得具有统计学经验的开发者、数据科学家和高级商业人士都可以使用它。使用 Spark SQL,用户可以连接到任何数据源,并将其呈现为可供 SQL 客户端使用的表。此外,交互式机器学习算法可以在 Spark 中轻松实现。

使用像 Apache Impala、Apache Hive 或 Apache Drill 这样仅支持 SQL 的引擎,用户只能使用 SQL 或类似 SQL 的语言来查询存储在多个数据库中的数据。这意味着与 Spark 相比,这些框架要小一些。不过,在 Google Cloud 上,您不必做出严格的选择;BigQuery 提供强大的 SQL 功能,而 Managed Service for Apache Spark 则允许您通过 Lakehouse 使用 Spark 的多功能性来处理相同的数据,并支持 Apache Iceberg 等开放格式。

公司如何使用 Spark?

许多公司都在使用 Spark 帮助其简化具有挑战性的计算密集型任务,即处理和分析大量实时或归档数据,包括结构化和非结构化数据。Spark 还能让用户无缝整合相关的复杂功能,如机器学习和图算法。 常见应用包括:

  • 大规模 ETL/ELT
  • 实时数据处理
  • 机器学习
  • 交互式数据探索
  • 图表分析

数据工程师

数据工程师依赖 Spark 来设计、构建和维护稳健的数据处理流水线和大规模 ETL 工作流。在 Google Cloud 上,数据工程师可以利用 Managed Service for Apache Spark 来消除基础设施方面的繁琐工作,选择零运维无服务器执行或全托管式集群。通过与 BigQuery 和 Knowledge Catalog 无缝集成,工程师可以使用 Apache Iceberg 等格式构建受管控的开放式湖仓一体架构。此外,借助数据服务智能体和 Gemini,他们可以自动进行数据整理并加快 PySpark 代码生成速度,从而比以往更快地将原始数据转换为可用于生产用途的流水线。

数据科学家

数据科学家可以将 Spark 与 GPU 结合使用,获取更丰富的分析和机器学习经验。使用熟悉的语言更快速地处理大量数据的能力有助于加速创新。Google Cloud 为 Spark 提供强大的 GPU 支持,并可与 Gemini Enterprise Agent Platform 无缝集成,帮助数据科学家更快速地构建和部署模型。他们可以连接自己首选的 IDE,例如 Jupyter 或 VS Code,以获得灵活的开发体验。这种灵活的开发体验结合 Gemini,可加快从初始探索到生产部署的整个工作流。

在 Google Cloud 上使用 Spark 还有更好的方法

全新的 Spark 使用方式:更轻松、更智能、更快速

Google Cloud 解决了大规模运行 Spark 时面临的常见挑战,让您可以专注于数据洞见,而不是基础设施。优化您的 Managed Service for Apache Spark 使用体验。Managed Service for Apache Spark

  • 灵活的部署选项:为您的工作负载选择合适的环境。借助零运维的无服务器 Spark 消除运维开销,或借助全托管式集群保持精细控制。
  • 业界领先的性能:借助 Lightning Engine,将要求最严苛的 ETL 和数据科学工作负载的处理速度提升高达 4.9 倍。它适用于无服务器集群和托管式集群,可降低计算费用,并且无需更改任何代码即可消除手动调优的成本。
  • 在您选择的 IDE 中进行统一开发:直接在您偏好的环境中编写和执行 Spark 代码,无论是 VS Code、Jupyter 还是其他环境。在同一受管控的数据上,无缝体验 SQL 和 Spark,无需切换上下文。
  • 智能体 AI 开发:使用数据智能体自动执行 PySpark 编码和数据整理,加快工作流速度。利用 Gemini Cloud Assist 自动分析根本原因并排查复杂作业的问题。
  • 统一治理:使用 Knowledge Catalog 管理数据和 AI 治理,为智能体提供语义,并确保从注入到 AI 驱动型数据洞见的数据生命周期保持一致。

其他资源

迈出下一步

获享 $300 赠金以及 20 多种提供“始终免费”用量的产品,开始在 Google Cloud 上构建项目。