Dataproc Hub 是自定义的 JupyterHub 服务器。管理员可以配置和创建 Dataproc 中心实例,这些实例可以生成单用户 Dataproc 集群来托管 Jupyter 和 JupyterLab 笔记本环境(请参阅使用 Dataproc 中心)。
为多位用户启动“记事本”。您可以创建启用了 Dataproc 的 Vertex AI Workbench 实例,也可以在虚拟机上安装 Dataproc JupyterLab 插件,以向多个用户提供笔记本。
目标
定义 Dataproc 集群配置(或使用其中一个预定义的配置文件)。
设置 Dataproc 中心实例环境变量。
创建 Dataproc 中心实例。
准备工作
如果您尚未创建 Google Cloud 项目和 Cloud Storage 存储分区,请先创建一个。
设置项目
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc, Compute Engine, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc, Compute Engine, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
在项目中创建 Cloud Storage 存储分区以保留此教程中使用的数据。
- In the Google Cloud console, go to the Cloud Storage Buckets page.
- Click Create bucket.
- On the Create a bucket page, enter your bucket information. To go to the next
step, click Continue.
- For Name your bucket, enter a name that meets the bucket naming requirements.
-
For Choose where to store your data, do the following:
- Select a Location type option.
- Select a Location option.
- For Choose a default storage class for your data, select a storage class.
- For Choose how to control access to objects, select an Access control option.
- For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
- Click Create.
定义集群配置
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 集群配置文件
- 在 Google Cloud 控制台中打开创建集群页面,然后选择并填写相应字段以指定 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/ |
设置中心环境变量
设置中心环境变量的方法有两种:
通过控制台设置中心环境变量
从 Google Cloud 控制台中 Dataproc→Workbench 页面上的用户管理的笔记本标签页创建 Dataproc Hub 实例时,您可以点击填充按钮以打开填充 Dataproc Hub 表单,这将允许您设置每个环境变量。
在文本文件中设置中心环境变量
创建文件。您可以使用文本编辑器在本地文件中设置 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 中心实例
准备工作:如需通过 Google Cloud 控制台创建 Dataproc 中心实例,您的用户账号必须具有
compute.instances.create
权限。实例的服务账号,即 Compute Engine 默认服务账号或IAM 和管理 > 服务账号(请参阅Dataproc 虚拟机服务账号)的编码名称必须包含iam.serviceAccounts.actAs
权限。前往 Google Cloud 控制台中的 Dataproc→Workbench 页面,然后选择 User-Managed Notebooks(用户管理的笔记本)标签页。
如果未预先选择为过滤条件,请点击过滤条件框,然后选择“环境:Dataproc Hub”。
依次点击 New Notebook(新建记事本)→Dataproc Hub。
在创建用户管理的笔记本页面上,提供以下信息:
- 笔记本名称:Dataproc Hub 实例名称。
- 区域:为 Dataproc Hub 实例选择一个区域。此 Dataproc 中心实例生成的 Dataproc 集群也会在此区域中创建。
- 地区:在所选区域内选择一个地区。
- 环境:
Environment
:选择Dataproc Hub
。Select a script to run after creation
(可选):您可以插入或浏览并选择要在生成的 Dataproc 集群上运行的初始化操作脚本或可执行文件。Populate Dataproc Hub (optional)
:点击填充打开一个表单,以便设置每个中心环境变量(请参阅设置 Dataproc Hub 实例环境变量,获取每个变量的说明)。Dataproc 会为所有未设置的环境变量使用默认值。或者,您也可以设置元数据key:value
对来设置环境变量(请参阅下一部分)。Metadata
:- 如果您创建了包含中心环境变量设置的文本文件(请参阅设置中心环境变量),请将文件的名称作为
key
提供,并将文件的gs://bucket-name/folder-name/environment-variable-filename
Cloud Storage 位置作为value
提供。Dataproc 会为所有未设置的环境变量使用默认值。
- 如果您创建了包含中心环境变量设置的文本文件(请参阅设置中心环境变量),请将文件的名称作为
- 机器配置:
Machine Type
:选择 Compute Engine 机器类型。- 设置其他机器配置选项。
- 其他选项:
- 您可以展开磁盘、网络、权限、安全和环境升级和系统健康状况部分,然后设置或替换默认值。
- 点击创建以启动 Dataproc 中心实例。
Dataproc 中心实例的 Open JupyterLab 链接会在实例创建后生效。用户点击此链接可打开 JupyterHub 服务器页面,以配置和创建 Dataproc JupyterLab 集群(请参阅使用 Dataproc Hub)。
清理
删除 Dataproc 中心实例
- 要删除 Dataproc 中心实例,请执行以下操作:
gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
删除存储桶
- 如需删除您在准备工作中创建的 Cloud Storage 存储分区(包括存储在存储分区中的数据文件),请输入以下命令:
gcloud storage rm gs://${BUCKET_NAME} --recursive