Managed Service for Apache Spark 的关键概念

本文档介绍了 Managed Service for Apache Spark 的关键概念、基本构建块、核心功能和优势。了解这些基础知识有助于您有效地使用 Managed Service for Apache Spark 来完成数据处理任务。

无服务器模型

Managed Service for Apache Spark 无服务器是一种新式自动化执行的 Managed Service for Apache Spark 模型。通过该模型,您可以运行作业,而无需预配、管理或伸缩底层基础设施:Managed Service for Apache Spark 会为您处理这些细节。

  • 批处理:批处理(也称为批处理工作负载)是 Managed Service for Apache Spark 作业的无服务器等效项。您需要将代码(例如 Spark 作业)提交到该服务。Managed Service for Apache Spark 会按需预配必要的资源,运行作业,然后删除这些资源。您无需创建或管理集群或作业资源,该服务会为您完成这些工作。
  • 交互式会话:交互式会话可提供实时按需环境,用于探索性数据分析,通常在 Jupyter 笔记本中进行。 交互式会话提供了一个临时的无服务器工作区,您可以使用该工作区运行查询和开发代码,而无需预配和管理集群及笔记本资源。
  • 会话模板:会话模板是一种可重复使用的配置,可用于定义交互式会话。模板包含会话设置,例如 Spark 属性和库依赖项。您可以使用该模板创建用于开发的交互式会话环境,通常在 Jupyter 笔记本中进行。

基于集群的模型

集群上的 Managed Service for Apache Spark 是使用 Managed Service for Apache Spark 的标准方式,以基础设施为中心。可让您完全控制一组专用的虚拟机,以执行数据处理任务。

  • 集群:集群是您的个人数据处理引擎,由 Google Cloud 虚拟机组成。您可以创建集群来运行 Apache Spark 和 Apache Hadoop 等开源框架。您可以完全控制集群大小、机器类型和配置。
  • 作业:作业是一项特定任务,例如 PySpark 脚本或 Hadoop 查询。 您无需直接在集群上运行作业,而是将作业提交给 Managed Service for Apache Spark,后者会为您管理作业执行。您可以将多个作业提交到集群。
  • 工作流模板:工作流模板是一种可重复使用的定义,用于编排一系列作业(工作流)。它可以定义作业之间的依赖关系,例如仅在数据清理作业成功完成后才运行机器学习作业。模板化工作流可以在现有集群上运行,也可以在为运行工作流而创建的临时集群上运行,然后在工作流完成后删除该集群。您可以根据需要使用该模板运行定义的工作流。
  • 自动扩缩政策:自动扩缩政策包含您定义的规则,用于根据集群工作负载向集群添加或从中移除工作器机器,以便动态优化集群成本和性能。

环境自定义

集群上的 Managed Service for Apache Spark 提供集群功能和组件,您可以使用这些功能和组件自定义应用环境。

笔记本和开发环境

Managed Service for Apache Spark 无服务器笔记本和 IDE 会链接到集成式开发环境,您可以在其中编写和执行代码。

  • BigQuery Studio 和 Workbench:这些是统一的分析和笔记本环境。借助这些环境,您可以编写代码(例如在 Jupyter 笔记本中),并使用 Managed Service for Apache Spark 集群或无服务器会话作为强大的后端引擎,用于在大型数据集上执行代码。
  • Managed Service for Apache Spark JupyterLab 插件:此官方 JupyterLabextension 可充当笔记本环境中的 Managed Service for Apache Spark 无服务器控制面板。它简化了您的工作流程,让您无需离开 Jupyter 界面即可浏览、创建和管理集群以及提交作业。
  • 适用于 VS Code 的 Google Cloud Data Agent Kit:这款官方 VS Code 扩展程序可让数据科学家、工程师和开发者在 IDE 中管理整个数据工作负载生命周期。Data Agent Kit 为 Managed Service for Apache Spark 提供 Data Cloud 支持,使您能够直接从 VS Code 开发代码、创建互动式会话和构建流水线
  • Managed Service for Apache Spark Connect Python 连接器:此 Python 库简化了将 Spark Connect 与 Managed Service for Apache Spark 搭配使用的流程。它可处理身份验证和端点配置,从而让您能够更轻松地将本地 Python 环境(例如笔记本或 IDE)连接到远程 Managed Service for Apache Spark 集群,以进行交互式开发。

容器模型

Google Kubernetes Engine 上的 Managed Service for Apache Spark 会在 GKE 集群上部署 Managed Service for Apache Spark 虚拟集群。与 Managed Service for Apache Spark 集群不同,Managed Service for Apache Spark 虚拟集群不会预配单独的主虚拟机和工作虚拟机。而是会在 GKE 集群中预配节点池。Managed Service for Apache Spark on GKE 作业会在这些节点池上作为 Pod 运行。节点池以及节点池上的 Pod 调度由 GKE 上的 Managed Service for Apache Spark 管理。