配置 Dataproc 中心


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

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

      启用 API

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

      gcloud init
    7. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

      转到“项目选择器”

    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:
  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. 在 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 存储桶。

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

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

通过 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 存储桶中。

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

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

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

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

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

    1. 笔记本名称:Dataproc 中心实例名称。
    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):点击填充可打开一个表单,您可以通过该表单设置每个 Hub 环境变量(如需了解每个变量的说明,请参阅设置 Dataproc Hub 实例环境变量)。Dataproc 会针对任何未设置的环境变量使用默认值。作为替代方案,您可以设置元数据 key:value 对,以设置环境变量(请参阅下一项)。
      4. Metadata
        1. 如果您创建了一个包含 hub 环境变量设置的文本文件(请参阅设置 hub 环境变量),请提供该文件的名称作为 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)。

清理

删除 Dataproc Hub 实例

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

删除存储桶

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

后续步骤