使用 gcloud CLI 创建集群

本页面介绍了如何使用 Google Cloud CLI gcloud 命令行工具创建 Managed Service for Apache Spark 集群,在该集群中运行 Apache Spark 作业 ,然后修改该集群中的工作器数量。

如需了解如何使用 API Explorer、 控制台(在 使用控制台创建集群 Google Cloud 中)和 客户端库(在 使用客户端库创建集群中)执行相同或类似的任务,请参阅快速入门。 Google Cloud

准备工作

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

  3. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  4. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  5. 创建或选择 Google Cloud 项目

    选择或创建项目所需角色

    • 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已获授角色的任何项目。
    • 创建项目:如需创建项目,您需要拥有 Project Creator 角色 (roles/resourcemanager.projectCreator),该角色包含 resourcemanager.projects.create 权限。了解如何授予 角色
    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替换为您要创建的 Google Cloud 项目的名称。

    • 选择您创建的 Google Cloud 项目:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替换为您的 Google Cloud 项目名称。

  6. 验证您是否拥有完成本指南所需的权限

  7. 验证是否已为您的 Google Cloud 项目启用结算功能。

  8. 启用 Dataproc API:

    启用 API 所需的角色

    如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予 角色

    gcloud services enable dataproc.googleapis.com
  9. 安装 Google Cloud CLI。

  10. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  11. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  12. 创建或选择 Google Cloud 项目

    选择或创建项目所需角色

    • 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已获授角色的任何项目。
    • 创建项目:如需创建项目,您需要拥有 Project Creator 角色 (roles/resourcemanager.projectCreator),该角色包含 resourcemanager.projects.create 权限。了解如何授予 角色
    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替换为您要创建的 Google Cloud 项目的名称。

    • 选择您创建的 Google Cloud 项目:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替换为您的 Google Cloud 项目名称。

  13. 验证您是否拥有完成本指南所需的权限

  14. 验证是否已为您的 Google Cloud 项目启用结算功能。

  15. 启用 Dataproc API:

    启用 API 所需的角色

    如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予 角色

    gcloud services enable dataproc.googleapis.com

所需的角色

如需运行本页中的示例,您需要拥有某些 IAM 角色。根据组织政策,这些角色可能已获授予。如需检查角色授予情况,请参阅 您是否需要授予角色?

如需详细了解如何授予角色,请参阅 管理对项目、文件夹和组织的访问权限

用户角色

如需获得创建 Managed Service for Apache Spark 集群所需的权限,请让管理员向您授予以下 IAM 角色:

服务账号角色

如需确保 Compute Engine 默认服务帐号拥有创建 Managed Service for Apache Spark 集群所需的权限,请让管理员向 Compute Engine 默认服务帐号授予针对项目的 Dataproc Worker (roles/dataproc.worker) IAM 角色。

创建集群

如需创建名为 example-cluster 的集群,请运行以下 gcloud Managed Service for Apache Spark clusters create 命令。

gcloud dataproc clusters create example-cluster --region=REGION

替换以下内容:

REGION:指定集群所在的区域

提交作业

如需提交计算 pi 的粗略值的示例 Spark 作业,请运行以下 gcloud Managed Service for Apache Spark jobs submit spark 命令:

gcloud dataproc jobs submit spark --cluster example-cluster \
    --region=REGION \
    --class org.apache.spark.examples.SparkPi \
    --jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000

注意:

替换以下内容:

REGION:指定集群区域。

  • 该作业在 example-cluster 上运行。
  • class 包含 SparkPi 的主要方法,用于计算 pi 的近似值。并维护其应用的完整性
  • jar 文件包含作业代码。
  • 1000 是作业参数。它指定作业为计算 pi 的值而执行的任务(迭代)数量。

该作业的运行过程和最终输出会显示在终端窗口中:

Waiting for job output...
...
Pi is roughly 3.14118528
...
Job finished successfully.

更新集群

要将集群中的工作器数量更改为 5,请运行以下命令:

gcloud dataproc clusters update example-cluster \
    --region=REGION \
    --num-workers 5

命令输出会显示集群详细信息:

workerConfig:
...
  instanceNames:
  - example-cluster-w-0
  - example-cluster-w-1
  - example-cluster-w-2
  - example-cluster-w-3
  - example-cluster-w-4
  numInstances: 5
statusHistory:
...
- detail: Add 3 workers.

如需将工作器节点的数量减少为原始值 2,请运行以下命令:

gcloud dataproc clusters update example-cluster \
    --region=REGION \
    --num-workers 2

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生 费用,请按照以下步骤操作。

  1. 如需删除 example-cluster,请运行 clusters delete 命令:
    gcloud dataproc clusters delete example-cluster \
        --region=REGION
    

后续步骤