本页面介绍了如何使用 Google Cloud CLI gcloud 命令行工具创建 Managed Service for Apache Spark 集群,在该集群中运行 Apache Spark 作业,然后修改该集群中的工作器数量。
如需了解如何使用 API Explorer、 Google Cloud 控制台和客户端库执行相同或类似的任务,请参阅快速入门:使用 API Explorer、使用 Google Cloud 控制台创建集群和使用客户端库创建集群。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
选择或创建项目所需的角色
- 选择项目:选择项目不需要特定的 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 项目名称。
启用 Dataproc API:
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予角色。gcloud services enable dataproc.googleapis.com
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
选择或创建项目所需的角色
- 选择项目:选择项目不需要特定的 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 项目名称。
启用 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 角色:
- 针对项目的 Dataproc Editor (
roles/dataproc.editor) - Compute Engine 默认服务账号的 Service Account User (
roles/iam.serviceAccountUser)
服务账号角色
如需确保 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 账号产生费用,请按照以下步骤操作。
- 如需删除
example-cluster,请运行clusters delete命令:gcloud dataproc clusters delete example-cluster \ --region=REGION
后续步骤
- 了解如何编写和运行 Spark Scala 作业。