配置 Dataproc 中心


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

为多个用户启动笔记本。您可以创建已启用 Dataproc 的 Vertex AI Workbench 实例安装 Dataproc JupyterLab 插件 以便为多个用户提供笔记本。

目标

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

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

  3. 创建 Dataproc 中心实例。

准备工作

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

  1. 设置项目

    1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    3. 确保您的 Google Cloud 项目已启用结算功能

    4. 启用 Dataproc, Compute Engine, and Cloud Storage API。

      启用 API

    5. 安装 Google Cloud CLI。
    6. 如需初始化 gcloud CLI,请运行以下命令:

      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. 确保您的 Google Cloud 项目已启用结算功能

    9. 启用 Dataproc, Compute Engine, and Cloud Storage API。

      启用 API

    10. 安装 Google Cloud CLI。
    11. 如需初始化 gcloud CLI,请运行以下命令:

      gcloud init

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

    1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

      进入“存储桶”页面

    2. 点击创建存储分区
    3. 创建存储分区页面上,输入您的存储分区信息。要转到下一步,请点击继续
      • 指定存储分区的名称中,输入符合存储分区命名要求的名称。
      • 对于选择数据存储位置,执行以下操作:
        • 选择位置类型选项。
        • 选择位置选项。
      • 对于为数据选择一个默认存储类别,请选择一个存储类别
      • 对于选择如何控制对象的访问权限,请选择访问权限控制选项。
      • 对于高级设置(可选),请指定加密方法保留政策存储分区标签
    4. 点击创建

定义集群配置

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. 打开创建集群页面 然后选择并填写相应的字段 指定 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. 在文本文件中设置中心环境变量

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

创建 Dataproc Hub 实例用户管理的笔记本 Dataproc→Workbench 页面,您可以点击填充 按钮打开一个填充 Dataproc 中心表单,使用该表单可设置每个 环境变量。

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

  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. 准备工作:创建 Dataproc Hub 实例 您的用户账号必须拥有 compute.instances.create 权限。实例的服务账号,即 Compute Engine 默认服务账号或IAM 和管理 > 服务账号(请参阅Dataproc 虚拟机服务账号)的编码名称必须包含iam.serviceAccounts.actAs权限。

  2. 前往 Dataproc→Workbench 页面,然后选择用户管理的笔记本 标签页。

  3. 如果未预选为过滤条件,请点击 Filter 框,然后选择 **Environment:Dataproc Hub"。

  4. 点击新建笔记本→Dataproc 中心

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

    1. 笔记本名称:Dataproc Hub 实例名称。
    2. 区域:为 Dataproc Hub 实例选择一个区域。Dataproc 此 Dataproc Hub 实例生成的集群也将 此区域中创建的。
    3. 地区:在所选区域内选择一个地区。
    4. 环境
      1. Environment:选择 Dataproc Hub
      2. Select a script to run after creation(可选):您可以插入或 浏览并选择 初始化操作 脚本或可执行文件。
      3. Populate Dataproc Hub (optional):点击填充可打开一个表单,用于 可让您设置每个 Hub 环境变量(请参阅 设置 Dataproc Hub 实例环境变量 了解每个变量的说明)。Dataproc 使用 默认值。作为替代方案 您可以设置 Metadata key:value 对来设置环境变量 (参见下一项)。
      4. Metadata
        1. 如果您创建了一个文本文件 包含您的 Hub 环境变量设置(请参阅 设置 Hub 环境变量), 提供文件名作为 keygs://bucket-name/folder-name/environment-variable-filename 该文件的 Cloud Storage 位置作为 value。 Dataproc 会针对任何未设置的节点使用默认值 环境变量
    5. 机器配置:
      1. Machine Type:选择 Compute Engine 机器类型
      2. 设置其他机器配置选项。
    6. 其他选项: <ph type="x-smartling-placeholder">
        </ph>
      1. 您可以在磁盘 网络权限安全性以及环境升级和系统运行状况 部分。
    7. 点击创建以启动 Dataproc Hub 实例。
  6. 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
    

后续步骤