本页面介绍了如何使用 Google Cloud CLI gcloud 命令行工具创建 Managed Service for Apache Spark 集群,在该集群中运行 Apache Spark 作业,然后修改该集群中的工作器数量。
如需了解如何使用 API Explorer、Google Cloud 控制台和客户端库执行相同或类似的任务,请参阅快速入门:使用Google Cloud 控制台创建集群和快速入门:使用客户端库创建集群。
准备工作
-
安装 Google Cloud CLI。
-
配置 gcloud CLI 以使用您的联合身份。
如需了解详情,请参阅使用联合身份登录 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,您需要拥有
serviceusage.services.enable权限。如果您已创建项目,则可能已通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。 了解如何授予角色。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 默认服务帐号授予项目的 以下 IAM 角色:
如果未能向正确的主账号授予这些角色,可能会导致权限错误。-
全部:
Dataproc Worker (
roles/dataproc.worker)
创建集群
如需创建名为 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 文件包含作业代码。注意:
file:///usr/lib/spark/examples/jars/spark-examples.jar是集群上预安装的示例 jar。对于自定义作业,请在 Cloud Storage 中指定您的 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 作业。