本文档介绍了 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 笔记本中进行。交互式会话提供了一个便捷的临时无服务器工作区,您可以使用该工作区运行查询和开发代码,而无需预配和管理集群和笔记本资源。
运行时配置文件(会话模板):运行时配置文件(在 Google Cloud CLI 和 Dataproc API 中称为会话模板)是一种可重用的配置,可用于定义交互式会话。该配置文件包含会话设置,例如计算层级、执行器配置、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 on clusters 提供集群功能和组件,可用于自定义应用环境。
笔记本和开发环境
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 界面,从而简化了工作流。 - Google Cloud Data Agent Kit:Data Agent Kit 可让数据科学家、工程师和开发者在 IDE 中管理其整个数据工作负载生命周期。Data Agent Kit 支持 Managed Service for Apache Spark,让您能够直接在 VS Code 或支持的 Agents CLI 中开发代码、创建交互式会话和构建流水线。
- Managed Service for Apache Spark Connect Python 连接器:此 Python 库简化了将 Spark Connect 与 Managed Service for Apache Spark 搭配使用的流程。它负责处理身份验证和端点配置,让您可以更轻松地将本地 Python 环境(例如笔记本或 IDE)连接到远程 Managed Service for Apache Spark 集群,以进行交互式开发。
容器模型
Managed Service for Apache Spark on Google Kubernetes Engine 会在 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 调度由 Managed Service for Apache Spark on GKE 管理。