了解 Dataproc 的关键概念

如需充分利用 Dataproc,最好了解其基本组成块。本指南介绍了 Dataproc 的核心概念和功能,以及这些功能带来的好处。

基于集群的模型

这是以基础设施为中心的标准 Dataproc 使用方式。可让您完全控制一组专用于数据处理任务的虚拟机。

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

无服务器模型

Serverless for Apache Spark 是一种现代化的自动执行 Dataproc 模型。通过该模型,您可以运行作业,而无需预配、管理或扩缩底层基础设施:Serverless for Apache Spark 会为您处理这些细节。

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

Metastore 服务

Dataproc 提供用于处理元数据(即有关您的数据的数据)的托管式服务。

  • Metastore:metastore 充当数据架构(例如表和列名称以及数据类型)的中央目录。借助 metastore,不同的服务、集群和作业可以了解数据的结构。通常,目录存储在 Cloud Storage 中。
  • 联合:元数据联合是一项高级功能,可让您访问和查询多个 metastore 中的数据,就像访问单个统一的 metastore 一样。

笔记本和开发环境

Dataproc 笔记本和 IDE 会链接到集成式开发环境,您可以在其中编写和执行代码。

  • BigQuery Studio 和 Workbench:这些是统一的分析和笔记本环境。 借助这些环境,您可以编写代码(例如在 Jupyter 笔记本中),并使用 Dataproc 集群或无服务器会话作为强大的后端引擎,用于在大型数据集上执行代码。
  • Dataproc JupyterLab 插件:此官方 JupyterLab 扩展程序充当笔记本环境中的 Dataproc 控制台。它简化了您的工作流程,让您无需离开 Jupyter 界面即可浏览、创建和管理集群以及提交作业。了解详情
  • Dataproc Spark Connect Python 连接器:此 Python 库简化了将 Spark Connect 与 Dataproc 搭配使用的流程。它可处理身份验证和端点配置,从而让您能够更轻松地将本地 Python 环境(例如笔记本或 IDE)连接到远程 Dataproc 集群,以进行交互式开发。了解详情

环境自定义

Dataproc 提供多种工具和组件,可用于自定义环境以满足特定需求。 Google Cloud 控制台中的“实用程序”部分包含一些有助于自定义 Dataproc 环境的实用工具。