本页面介绍了如何使用 Google Cloud CLI gcloud 命令行工具创建 Managed Service for Apache Spark 集群,在该集群中运行 Apache Spark 作业 ,然后修改该集群中的工作器数量。
如需了解如何使用 API Explorer、 控制台(在 使用控制台创建集群 Google Cloud 中)和 客户端库(在 使用客户端库创建集群中)执行相同或类似的任务,请参阅快速入门。 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 项目名称。
-
验证是否已为您的 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 项目名称。
-
验证是否已为您的 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) 针对项目的 -
Service Account User (
roles/iam.serviceAccountUser) 针对 Compute Engine 默认服务帐号的
服务账号角色
如需确保 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 账号产生 费用,请按照以下步骤操作。
- 如需删除
example-cluster,请运行clusters delete命令:gcloud dataproc clusters delete example-cluster \ --region=REGION
后续步骤
- 了解如何编写和运行 Spark Scala 作业。