Apache Spark 是一个用于进行大规模数据处理的统一分析引擎,内置了用于 SQL、流式传输、机器学习和图处理的模块。Spark 可在 Apache Hadoop、Kubernetes、云环境中运行,也可独立运行,支持多种数据源。它提供丰富的 Java、Scala、Python 和 R API,使其适合广泛的开发者和数据科学家使用。其 Python API PySpark 还能与 Pandas 等热门库良好集成,用于数据处理。在 Google Cloud 上,Apache Spark 借助无服务器选项、Lightning Engine(预览版)等突破性性能增强功能,以及与统一数据和 AI 平台的深度集成,跃升至新高度。
一个常见问题是,何时使用 Apache Spark,何时使用 Apache Hadoop?两者都是目前市场上最重要的分布式系统,也是类似的 Apache 顶级项目,经常一起使用。Hadoop 采用 MapReduce 范式,主要用于大量磁盘操作。Spark 是一种更灵活、通常费用更高的内存中处理架构。了解各自的特性,有助于您在合适的时机做出使用决策。
了解 Google Cloud 如何助您以更简化、集成且更具成本效益的方式运行 Apache Spark 工作负载。您可以利用 Google Cloud Serverless for Apache Spark 进行零运维开发,也可以使用 Dataproc 管理 Spark 集群。
Spark 生态系统包含五个关键组件:
在这些组件之间,Google Cloud 提供了一个经过优化的环境。例如,Lightning Engine 可提升 Spark 和 DataFrame 的性能,Google Cloud Serverless for Apache Spark 可简化部署与管理,而 Gemini 可在 BigQuery Studio 和 Vertex AI Workbench 等笔记本环境中提升开发者的工作效率。
速度
与 Hadoop MapReduce 相比,Spark 的内存处理和 DAG 调度程序可让工作负载更快地完成,尤其是迭代任务。Google Cloud 借助优化的基础架构和 Lightning Engine 提升了处理速度。
易用性
Spark 的高级 Operator 可简化并行应用的构建。通过 Scala、Python、R 和 SQL 以交互方式使用 Spark 可实现快速开发。Google Cloud 提供无服务器选项和集成笔记本,并通过 Gemini 提升易用性。
可伸缩性
Spark 提供横向可伸缩性,通过在集群节点之间分配工作来处理大量数据。Google Cloud 通过无服务器自动扩缩和灵活的 Dataproc 集群简化了扩缩操作。
通用性
Spark 支持很多库,包括 SQL 和 DataFrame、用于机器学习的 MLlib、GraphX 和 Spark Streaming。您可以在同一应用中无缝地组合使用这些库。
开源框架创新性
Spark 利用开源社区的力量快速创新和解决问题,从而加快开发速度和缩短上市时间。Google Cloud 秉承这种开放精神,提供标准 Apache Spark 并增强其功能。
Apache Spark 是一个快速通用集群计算引擎,可以部署在 Hadoop 集群中或以独立模式部署。借助 Spark,程序员可以使用 Java、Scala、Python、R 和 SQL 快速编写应用,这使得具有统计学经验的开发者、数据科学家和高级商业人士都可以使用它。使用 Spark SQL,用户可以连接到任何数据源,并将其呈现为可供 SQL 客户端使用的表。此外,交互式机器学习算法可以在 Spark 中轻松实现。
使用像 Apache Impala、Apache Hive 或 Apache Drill 这样仅支持 SQL 的引擎,用户只能使用 SQL 或类似 SQL 的语言来查询存储在多个数据库中的数据。这意味着与 Spark 相比,这些框架要小一些。 不过,在 Google Cloud 上,您无需在二者之间严格选择;BigQuery 提供强大的 SQL 功能,而 Google Cloud Serverless for Apache Spark 和用于 Spark 与 Hadoop 的 Dataproc 托管式服务让您能够充分利用 Spark 的多功能性,通常可通过 BigLake Metastore 和开放格式在同一数据上操作。
许多公司都在使用 Spark 帮助其简化具有挑战性的计算密集型任务,即处理和分析大量实时或归档数据,包括结构化和非结构化数据。Spark 还能让用户无缝整合相关的复杂功能,如机器学习和图算法。 常见应用包括:
数据工程师使用 Spark 编写和构建数据处理作业,并可选择使用更广泛的语言集进行编程。在 Google Cloud 上,数据工程师可以利用 Google Cloud Serverless for Apache Spark 构建零运维的 ETL/ELT 流水线,也可以使用 Dataproc 进行托管式集群控制,并与 BigQuery 和 Dataplex Universal Catalog 等服务集成以实现统一治理。
数据科学家可以将 Spark 与 GPU 结合使用,获取更丰富的分析和机器学习经验。使用熟悉的语言更快速地处理大量数据的能力有助于加速创新。 Google Cloud 为 Spark 提供强大的 GPU 支持,并可与 Vertex AI 无缝集成,帮助数据科学家更快速地构建和部署模型。他们可以利用各种笔记本环境,例如 BigQuery Studio、Vertex AI Workbench,也可以连接他们首选的 IDE,例如 Jupyter 和 VS Code。这种灵活的开发体验结合 Gemini,可加快从初始探索到生产部署的整个工作流。