配置 Dataproc 中心

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

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

定义集群配置

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 Hub 实例,您的用户账号必须具有 compute.instances.create 权限。此外,实例的服务账号,即 Compute Engine 默认服务账号或 IAM 和管理 > 服务账号中列出的用户指定服务账号(请参阅 Dataproc 虚拟机服务账号)必须具有 iam.serviceAccounts.actAs 权限。

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

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

  4. 依次点击新建笔记本→Dataproc Hub

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

    1. 笔记本名称:Dataproc Hub 实例名称。
    2. 区域:为 Dataproc Hub 实例选择一个区域。此 Dataproc Hub 实例生成的 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-filename Cloud Storage 位置作为 value 提供。Dataproc 会为未设置的环境变量使用默认值。
    5. 机器配置:
      1. Machine Type:选择 Compute Engine 机器类型
      2. 设置其他机器配置选项。
    6. 其他选项
      1. 您可以在磁盘网络权限安全环境升级和系统健康状况部分展开和设置或替换默认值。
    7. 点击创建以启动 Dataproc Hub 实例。
  6. Dataproc Hub 实例的打开 JupyterLab 链接会在实例创建后变为有效。用户点击此链接可打开 JupyterHub 服务器页面,以配置和创建 Dataproc JupyterLab 集群(请参阅使用 Dataproc Hub)。