Dataproc 中心是自定义的 Jupyterhub服务器。管理员可以配置和创建 Dataproc 中心实例,这些实例可以生成单用户Dataproc集群来托管 Jupyter 和 JupyterLab 笔记本环境(请参阅使用 Dataproc 中心)。
目标
定义 Dataproc 集群配置(或使用其中一个预定义的配置文件)。
设置 Dataproc 中心实例环境变量。
创建 Dataproc 中心实例。。
准备工作
如果您尚未创建 Google Cloud 项目和 Cloud Storage 存储分区,请先创建一个。
设置项目
-
登录您的 Google 帐号。
如果您还没有 Google 帐号,请注册新帐号。
-
在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能。
- 启用 Dataproc, Compute Engine, and Cloud Storage API。
- 安装并初始化 Cloud SDK。
-
登录您的 Google 帐号。
在项目中创建 Cloud Storage 存储分区以保留此教程中使用的数据。
- 在 Cloud Console 中,转到 Cloud Storage 浏览器页面。
- 点击创建存储分区。
- 在创建存储分区对话框中,指定以下特性:
- 点击创建。
定义集群配置
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 集群配置文件:
通过控制台创建 YAML 集群配置文件
- 在 Cloud Console 中打开创建集群页面,然后选择并填写相应字段以指定 Dataproc Hub 将生成的集群类型用户。
- 在左侧面板的底部,选择“等效 REST”。
- 复制生成的 JSON 代码块(不包括最前面的 POST 请求行),然后将 JSON 代码块粘贴到 JSON-YAML 转换器(搜索“将 JSON 转换为 YAML”)。
- 将转换后的 YAML 复制到本地 cluster-config-filename。yaml 文件。
从现有集群中导出 YAML 集群配置文件
- 根据您的要求创建集群。
- 将集群配置导出到本地 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.yaml 和 example-single-node-cluster.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/ |
设置中心环境变量
设置中心环境变量的方法有两种:
通过控制台设置中心环境变量
从 Cloud Console 的 Dataproc→Notebooks 实例页面创建中心实例时,您可以点击“填充”按钮以打开填充 Dataproc Hub表单,这将允许您设置每个变量(请参阅创建 Dataproc Hub 实例)。
在文本文件中设置中心环境变量
创建文件。您可以使用文本编辑器在本地文件中设置 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
将文件保存在 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.use、 dataproc.clusters.use |
Dataproc 中心 | 服务帐号 | roles/dataproc.hubAgent |
Dataproc | 服务帐号 | roles/dataproc.worker |
创建 Dataproc 中心实例
转到 Cloud Console 中的Dataproc→笔记本实例页面。
点击“新建实例→Dataproc Hub”
请在新建笔记本实例页面上提供以下信息:
- 实例名称:Dataproc 中心实例名称。
- 区域:为 Dataproc Hub 实例选择一个区域。注意:此 Dataproc 中心实例生成的 Dataproc 集群也会在此地区中创建。
- 地区:在所选区域内选择一个地区。
- 环境:
- 环境:选择“Dataproc Hub”
- 选择要在创建后运行的脚本(可选):您可以插入或浏览,然后选择要在生成的 Dataproc 集群上运行的初始化操作脚本或可执行文件。
- 填充 Dataproc Hub(可选):点击“填充”打开一个表单,以便设置每个中心环境变量(请参阅设置 Dataproc Hub 实例环境变量,获取每个变量的数量)。或者,您也可以使用下面的
container-env-file
字段,指向您创建的、包含变量设置的文本文件。请注意,如果您未设置部分或所有环境变量,Dataproc 将为未设置的变量使用默认值。 - 环境变量:
container-env-file
(可选):如果您创建了包含中心环境变量设置的文本文件(请参阅设置中心环境变量),请提供文件的名称和 Cloud Storage 位置。示例:
gs://bucket-name/folder-name/environment-variable-filename
。请注意,如果您未设置部分或所有环境变量,Dataproc 将为未设置的变量使用默认值。
- 机器配置:
- 机器类型:选择 Compute Engine 机器类型。
- 设置其他机器配置选项。
- 点击“创建”以启动实例。
实例运行时,点击“笔记本实例”页面上的“JupyterLab”链接即可访问该实例。
清理
删除 Dataproc 中心实例
- 要删除 Dataproc 中心实例,请执行以下操作:
gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
删除存储分区
- 如需删除您在准备工作中创建的 Cloud Storage 存储分区(包括存储在存储分区中的数据文件),请输入以下命令:
gsutil -m rm -r gs://${BUCKET_NAME}