使用 gcloud CLI 创建集群

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

如需了解如何使用 API Explorer、 Google Cloud 控制台和客户端库执行相同或类似的任务,请参阅快速入门:使用 API Explorer使用 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 的 main 方法,该方法用于计算 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
    

后续步骤