Dataproc Hub 是一个自定义的 JupyterHub 服务器。 管理员配置和创建可以生成单用户的 Dataproc Hub 实例 Dataproc 集群,用于托管 Jupyter 和 JupyterLab 笔记本环境(请参阅使用 Dataproc Hub)。
为多个用户启动笔记本。您可以创建已启用 Dataproc 的 Vertex AI Workbench 实例 或安装 Dataproc JupyterLab 插件 以便为多个用户提供笔记本。
目标
定义 Dataproc 集群配置(或使用其中一个预定义的配置文件)。
设置 Dataproc 中心实例环境变量。
创建 Dataproc 中心实例。
准备工作
如果您尚未创建 Google Cloud 项目和 Cloud Storage 存储分区,请先创建一个。
设置项目
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用 Dataproc, Compute Engine, and Cloud Storage API。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用 Dataproc, Compute Engine, and Cloud Storage API。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
在项目中创建 Cloud Storage 存储分区以保留此教程中使用的数据。
定义集群配置
Dataproc 中心实例根据 YAML 集群配置文件中包含的配置值创建集群。
集群配置可以指定 Dataproc 集群可用的任何功能或组件(例如机器类型、初始化操作和可选组件)。集群映像版本必须为 1.4.13 或更高版本。尝试生成映像版本低于 1.4.13 的集群会导致错误并失败。
示例 YAML 集群配置文件
clusterName: cluster-name config: softwareConfig: imageVersion: 2.2-ubuntu22 optionalComponents: - JUPYTER
每个配置都必须保存在 Cloud Storage 中。您可以创建并保存多个配置文件,让用户在使用 Dataproc Hub 创建 Dataproc 集群笔记本环境时为其提供选择。
您可以通过以下两种方式创建 YAML 集群配置文件:
通过控制台创建 YAML 集群配置文件
- 打开创建集群页面
然后选择并填写相应的字段
指定 Dataproc Hub 将为用户生成的集群类型。
- 在左侧面板的底部,选择“等效 REST”。
- 复制生成的 JSON 代码块(不包括最前面的 POST 请求行),然后将 JSON 代码块粘贴到 JSON-YAML 转换器(搜索“将 JSON 转换为 YAML”)。
- 将转换后的 YAML 复制到本地 cluster-config-filename。yaml 文件。
从现有集群中导出 YAML 集群配置文件
- 根据您的要求创建集群。
- 将集群配置导出到本地 cluster-config-filename.yaml 文件。
gcloud dataproc clusters export cluster-name \ --destination cluster-config-filename.yaml \ --region region
在 Cloud Storage 中保存 YAML 配置文件
将本地 YAML 集群配置文件复制到 Cloud Storage 存储分区。
gcloud storage cp cluster-config-filename.yaml gs://bucket-name/
设置 Dataproc 中心实例环境变量
管理员可以设置下表中列出的中心环境变量,以设置将由中心用户生成的 Dataproc 集群的特性。
变量 | 说明 | 示例 |
---|---|---|
NOTEBOOKS_LOCATION | Cloud Storage 存储分区或包含用户笔记本的存储分区文件夹。“gs://”前缀是可选项。默认:Dataproc 暂存存储分区。 | gs://bucket-name/ |
DATAPROC_CONFIGS | YAML 集群配置文件 Cloud Storage 路径字符串的逗号分隔列表。“gs://”前缀是可选项。默认值:gs://dataproc-spawner-dist/example-configs/ 。其包含预定义的 example-cluster.yaml 和 example-single-node.yaml 。 |
gs://cluster-config-filename.yaml |
DATAPROC_LOCATIONS_LIST | Dataproc Hub 实例所在区域中的可用区后缀。用户可以选择其中一个可用区作为将生成其 Dataproc 集群的可用区。默认值:“b”。 | b,c,d |
DATAPROC_DEFAULT_SUBNET | Dataproc 中心实例将在其上生成 Dataproc 集群的子网。 默认值:Dataproc Hub 实例子网。 | https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name |
DATAPROC_SERVICE_ACCOUNT | 用来运行 Dataproc 虚拟机的服务账号。默认值:如果未设置,则使用默认 Dataproc 服务账号。 | service-account@project-id.iam.gserviceaccount.com |
SPAWNER_DEFAULT_URL | 默认情况下,是否在生成的 Dataproc 集群上显示 Jupyter 或 JupyterLab 界面。 默认值:“/lab”。 | “/”或“/lab”,分别用于 Jupyter 或 JupyterLab。 |
DATAPROC_ALLOW_CUSTOM_CLUSTERS | 是否允许用户自定义其 Dataproc 集群。 默认值:false。 | “true”或“false” |
DATAPROC_MACHINE_TYPES_LIST | 如果已启用集群自定义(DATAPROC_ALLOW_CUSTOM_CLUSTERS),则系统允许用户为其生成的 Dataproc 集群选择的机器类型列表。 默认值:空(允许使用所有机器类型)。 | n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4 |
NOTEBOOKS_EXAMPLES_LOCATION | 集群启动时,将 Cloud Storage 路径的笔记本存储分区或存储分区文件夹下载到衍生的 Dataproc 集群。 默认值:空。 | gs://bucket-name/ |
设置中心环境变量
设置中心环境变量的方法有两种:
通过控制台设置中心环境变量
创建 Dataproc Hub 实例时 用户管理的笔记本 Dataproc→Workbench 页面,您可以点击填充 按钮打开一个填充 Dataproc 中心表单,使用该表单可设置每个 环境变量。
在文本文件中设置中心环境变量
创建文件。您可以使用文本编辑器在本地文件中设置 Dataproc Hub 实例环境变量。 或者,您可以通过运行以下命令来创建该文件 在填充占位值以及更改或添加变量及其值后。
cat <<EOF > environment-variables-file DATAPROC_CONFIGS=gs://bucket/cluster-config-filename.yaml NOTEBOOKS_LOCATION=gs://bucket/notebooks DATAPROC_LOCATIONS_LIST=b,c EOF
将文件保存在 Cloud Storage 中。复制本地 Dataproc Hub 实例环境变量 复制到您的 Cloud Storage 存储桶
gcloud storage cp environment-variable-filename gs://bucket-name/folder-name/
设置 Identity and Access Management (IAM) 角色
Dataproc Hub 包含具有以下能力的下列身份:
- 管理员:创建 Dataproc Hub 实例
- 数据和机器学习用户:访问 Dataproc Hub 界面
- Dataproc Hub 服务账号:表示 Dataproc Hub
- Dataproc 服务账号:表示 Dataproc Hub 创建的 Dataproc 集群。
每个身份都需要特定角色或权限才能执行其关联任务。下表总结了每个身份所需的 IAM 角色和权限。
身份 | 类型 | 角色或权限 |
---|---|---|
Dataproc Hub 管理员 | 用户或服务账号 | roles/notebooks.admin |
Dataproc Hub 用户 | 用户 | notebooks.instances.use、 dataproc.clusters.use |
Dataproc 中心 | 服务账号 | roles/dataproc.hubAgent |
Dataproc | 服务账号 | roles/dataproc.worker |
创建 Dataproc 中心实例
准备工作:创建 Dataproc Hub 实例 您的用户账号必须拥有
compute.instances.create
权限。实例的服务账号,即 Compute Engine 默认服务账号或IAM 和管理 > 服务账号(请参阅Dataproc 虚拟机服务账号)的编码名称必须包含iam.serviceAccounts.actAs
权限。前往 Dataproc→Workbench 页面,然后选择用户管理的笔记本 标签页。
如果未预选为过滤条件,请点击 Filter 框,然后选择 **Environment:Dataproc Hub"。
点击新建笔记本→Dataproc 中心。
在创建用户管理的笔记本页面上,提供以下信息:
- 笔记本名称:Dataproc Hub 实例名称。
- 区域:为 Dataproc Hub 实例选择一个区域。Dataproc 此 Dataproc Hub 实例生成的集群也将 此区域中创建的。
- 地区:在所选区域内选择一个地区。
- 环境:
Environment
:选择Dataproc Hub
。Select a script to run after creation
(可选):您可以插入或 浏览并选择 初始化操作 脚本或可执行文件。Populate Dataproc Hub (optional)
:点击填充可打开一个表单,用于 可让您设置每个 Hub 环境变量(请参阅 设置 Dataproc Hub 实例环境变量 了解每个变量的说明)。Dataproc 使用 默认值。作为替代方案 您可以设置 Metadatakey:value
对来设置环境变量 (参见下一项)。Metadata
:- 如果您创建了一个文本文件
包含您的 Hub 环境变量设置(请参阅
设置 Hub 环境变量),
提供文件名作为
key
和gs://bucket-name/folder-name/environment-variable-filename
该文件的 Cloud Storage 位置作为value
。 Dataproc 会针对任何未设置的节点使用默认值 环境变量
- 如果您创建了一个文本文件
包含您的 Hub 环境变量设置(请参阅
设置 Hub 环境变量),
提供文件名作为
- 机器配置:
Machine Type
:选择 Compute Engine 机器类型。- 设置其他机器配置选项。
- 其他选项:
<ph type="x-smartling-placeholder">
- </ph>
- 您可以在磁盘 网络、权限、安全性以及环境升级和系统运行状况 部分。
- 点击创建以启动 Dataproc Hub 实例。
Dataproc Hub 实例的打开 JupyterLab 链接会变为 在实例创建后处于活跃状态用户点击此链接即可打开 用于配置和创建 Dataproc JupyterLab 的 JupyterHub 服务器页面 集群(请参阅使用 Dataproc 中心)。
清理
删除 Dataproc Hub 实例
- 要删除您的 Dataproc Hub 实例,请执行以下操作:
gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
删除存储桶
- 要删除您在 Cloud Storage 中创建的 Cloud Storage 存储桶,请执行以下操作:
准备工作,包括数据文件
存储在存储桶中:
gcloud storage rm gs://${BUCKET_NAME} --recursive