配置 Dataproc 中心


Dataproc Hub 是自定义的 JupyterHub 服务器。管理员可以配置和创建 Dataproc 中心实例,这些实例可以生成单用户 Dataproc 集群来托管 JupyterJupyterLab 笔记本环境(请参阅使用 Dataproc 中心)。

为多位用户启动“记事本”。您可以创建启用了 Dataproc 的 Vertex AI Workbench 实例,也可以在虚拟机上安装 Dataproc JupyterLab 插件,以向多个用户提供笔记本。

目标

  1. 定义 Dataproc 集群配置(或使用其中一个预定义的配置文件)。

  2. 设置 Dataproc 中心实例环境变量。

  3. 创建 Dataproc 中心实例。

准备工作

如果您尚未创建 Google Cloud 项目和 Cloud Storage 存储分区,请先创建一个。

  1. 设置项目

    1. 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.
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    3. Make sure that billing is enabled for your Google Cloud project.

    4. Enable the Dataproc, Compute Engine, and Cloud Storage APIs.

      Enable the APIs

    5. Install the Google Cloud CLI.
    6. To initialize the gcloud CLI, run the following command:

      gcloud init
    7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    8. Make sure that billing is enabled for your Google Cloud project.

    9. Enable the Dataproc, Compute Engine, and Cloud Storage APIs.

      Enable the APIs

    10. Install the Google Cloud CLI.
    11. To initialize the gcloud CLI, run the following command:

      gcloud init

  2. 在项目中创建 Cloud Storage 存储分区以保留此教程中使用的数据。

    1. In the Google Cloud console, go to the Cloud Storage Buckets page.

      Go to Buckets page

    2. Click Create bucket.
    3. 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.
    4. 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 集群配置文件:

  1. 通过控制台创建 YAML 集群配置文件

  2. 从现有集群中导出 YAML 集群配置文件

通过控制台创建 YAML 集群配置文件

  1. 在 Google Cloud 控制台中打开创建集群页面,然后选择并填写相应字段以指定 Dataproc Hub 将生成的集群类型用户。
    1. 在左侧面板的底部,选择“等效 REST”。
    2. 复制生成的 JSON 代码块(不包括最前面的 POST 请求行),然后将 JSON 代码块粘贴到 JSON-YAML 转换器(搜索“将 JSON 转换为 YAML”)。
    3. 将转换后的 YAML 复制到本地 cluster-config-filename。yaml 文件。

从现有集群中导出 YAML 集群配置文件

  1. 根据您的要求创建集群
  2. 将集群配置导出到本地 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.yamlexample-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/

设置中心环境变量

设置中心环境变量的方法有两种:

  1. 通过控制台设置中心环境变量

  2. 在文本文件中设置中心环境变量

通过控制台设置中心环境变量

从 Google Cloud 控制台中 Dataproc→Workbench 页面上的用户管理的笔记本标签页创建 Dataproc Hub 实例时,您可以点击填充按钮以打开填充 Dataproc Hub 表单,这将允许您设置每个环境变量。

在文本文件中设置中心环境变量

  1. 创建文件。您可以使用文本编辑器在本地文件中设置 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
    

  2. 将文件保存在 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.usedataproc.clusters.use
Dataproc 中心 服务账号 roles/dataproc.hubAgent
Dataproc 服务账号 roles/dataproc.worker

创建 Dataproc 中心实例

  1. 准备工作:如需通过 Google Cloud 控制台创建 Dataproc 中心实例,您的用户账号必须具有 compute.instances.create 权限。实例的服务账号,即 Compute Engine 默认服务账号或IAM 和管理 > 服务账号(请参阅Dataproc 虚拟机服务账号)的编码名称必须包含iam.serviceAccounts.actAs权限。

  2. 前往 Google Cloud 控制台中的 Dataproc→Workbench 页面,然后选择 User-Managed Notebooks(用户管理的笔记本)标签页。

  3. 如果未预先选择为过滤条件,请点击过滤条件框,然后选择“环境:Dataproc Hub”。

  4. 依次点击 New Notebook(新建记事本)→Dataproc Hub

  5. 创建用户管理的笔记本页面上,提供以下信息:

    1. 笔记本名称:Dataproc Hub 实例名称。
    2. 区域:为 Dataproc Hub 实例选择一个区域。此 Dataproc 中心实例生成的 Dataproc 集群也会在此区域中创建。
    3. 地区:在所选区域内选择一个地区。
    4. 环境
      1. Environment:选择 Dataproc Hub
      2. Select a script to run after creation(可选):您可以插入或浏览并选择要在生成的 Dataproc 集群上运行的初始化操作脚本或可执行文件。
      3. Populate Dataproc Hub (optional):点击填充打开一个表单,以便设置每个中心环境变量(请参阅设置 Dataproc Hub 实例环境变量,获取每个变量的说明)。Dataproc 会为所有未设置的环境变量使用默认值。或者,您也可以设置元数据 key:value 对来设置环境变量(请参阅下一部分)。
      4. Metadata
        1. 如果您创建了包含中心环境变量设置的文本文件(请参阅设置中心环境变量),请将文件的名称作为 key 提供,并将文件的 gs://bucket-name/folder-name/environment-variable-filenameCloud Storage 位置作为 value 提供。Dataproc 会为所有未设置的环境变量使用默认值。
    5. 机器配置:
      1. Machine Type:选择 Compute Engine 机器类型
      2. 设置其他机器配置选项。
    6. 其他选项
      1. 您可以展开磁盘网络权限安全环境升级和系统健康状况部分,然后设置或替换默认值。
    7. 点击创建以启动 Dataproc 中心实例。
  6. 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
    

后续步骤