配置 Dataproc 中心

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

目标

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

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

  3. 创建 Dataproc 中心实例。

准备工作

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

  1. 设置项目

    1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
    2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

      转到“项目选择器”

    3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

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

      启用 API

    5. 安装并初始化 Cloud SDK
    6. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

      转到“项目选择器”

    7. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

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

      启用 API

    9. 安装并初始化 Cloud SDK

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

    1. 在 Cloud Console 中,转到 Cloud Storage 浏览器页面。

      转到浏览器

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

定义集群配置

Dataproc 中心实例根据 YAML 集群配置文件中包含的配置值创建集群。

集群配置可以指定 Dataproc 集群可用的任何功能或组件(例如机器类型、初始化操作和可选组件)。集群映像版本必须为 1.4.13 或更高版本。尝试生成映像版本低于 1.4.13 的集群会导致错误并失败。

示例 YAML 集群配置文件

clusterName: cluster-name
config:
  gceClusterConfig:
    metadata:
      'PIP_PACKAGES': 'google-cloud-core>=1.3.0 google-cloud-storage>=1.28.1'
  initializationActions:
  - executableFile: gs://dataproc-initialization-actions/python/pip-install.sh
  softwareConfig:
    imageVersion: 1.5-ubuntu18
    optionalComponents:
    - ANACONDA
    - JUPYTER

每个配置都必须保存在 Cloud Storage 中。您可以创建并保存多个配置文件,让用户在使用 Dataproc Hub 创建 Dataproc 集群笔记本环境时为其提供选择。

您可以通过以下两种方式创建 YAML 集群配置文件:

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

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

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

  1. 在 Cloud Console 中打开创建集群页面,然后选择并填写相应字段以指定 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 存储分区。

gsutil 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. 在文本文件中设置中心环境变量

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

从 Cloud Console 的 Dataproc→Notebooks 实例页面创建中心实例时,您可以点击“填充”按钮以打开填充 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 存储分区中。

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

  2. 转到 Cloud Console 中的Dataproc→笔记本实例页面。

  3. 点击“新建实例→Dataproc Hub”

  4. 请在新建笔记本实例页面上提供以下信息:

    1. 实例名称:Dataproc 中心实例名称。
    2. 区域:为 Dataproc Hub 实例选择一个区域。注意:此 Dataproc 中心实例生成的 Dataproc 集群也会在此地区中创建。
    3. 地区:在所选区域内选择一个地区。
    4. 环境
      1. 环境:选择“Dataproc Hub”
      2. 选择要在创建后运行的脚本(可选):您可以插入或浏览,然后选择要在生成的 Dataproc 集群上运行的初始化操作脚本或可执行文件。
      3. 填充 Dataproc Hub(可选):点击“填充”打开一个表单,以便设置每个中心环境变量(请参阅设置 Dataproc Hub 实例环境变量,获取每个变量的数量)。或者,您也可以使用下面的 container-env-file 字段,指向您创建的、包含变量设置的文本文件。请注意,如果您未设置部分或所有环境变量,Dataproc 将为未设置的变量使用默认值。
      4. 环境变量:
        1. container-env-file(可选):如果您创建了包含中心环境变量设置的文本文件(请参阅设置中心环境变量),请提供文件的名称和 Cloud Storage 位置。

          示例

          gs://bucket-name/folder-name/environment-variable-filename

          请注意,如果您未设置部分或所有环境变量,Dataproc 将为未设置的变量使用默认值。

    5. 机器配置:
      1. 机器类型:选择 Compute Engine 机器类型
      2. 设置其他机器配置选项。
    6. 点击“创建”以启动实例。
  5. 实例运行时,点击“笔记本实例”页面上的“JupyterLab”链接即可访问该实例。

清除数据

删除 Dataproc 中心实例

  • 要删除 Dataproc 中心实例,请执行以下操作:
    gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
    

删除存储分区

  • 如需删除您在准备工作中创建的 Cloud Storage 存储分区(包括存储在存储分区中的数据文件),请输入以下命令:
    gsutil -m rm -r gs://${BUCKET_NAME}
    

后续步骤