本文档介绍了 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 提供了集群功能和 组件,您可以使用 它们自定义应用环境。
笔记本和开发环境
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 界面,从而简化了工作流。 - 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 集群中预配节点池。基于 GKE 的 Managed Service for Apache Spark 作业会在这些节点池上作为 Pod 运行。节点池以及节点池上的 Pod 调度由基于 GKE 的 Managed Service for Apache Spark 管理。