本頁面說明如何使用 Google Cloud CLI gcloud 指令列工具,建立 Managed Service for Apache Spark 叢集、在叢集執行 Apache Spark 工作,然後修改叢集的 worker 數量。
如要瞭解如何執行相同或類似的工作,請參閱「快速入門導覽課程:使用 API Explorer」、「使用Google Cloud 控制台建立叢集」中的Google Cloud 控制台,以及「使用用戶端程式庫建立叢集」中的用戶端程式庫。
事前準備
-
安裝 Google Cloud CLI。
-
設定 gcloud CLI,使用您的聯合身分。
詳情請參閱「使用聯合身分登入 gcloud CLI」。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
-
建立專案:如要建立專案,您必須具備專案建立者角色 (
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,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable dataproc.googleapis.com
必要的角色
您必須具備特定 IAM 角色,才能執行本頁中的範例。視組織政策而定,這些角色可能已授予。如要查看角色授予,請參閱「是否需要授予角色?」一節。
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
使用者角色
如要取得建立 Managed Service for Apache Spark 叢集所需的權限,請要求管理員授予您下列 IAM 角色:
- 專案的 Dataproc 編輯者 (
roles/dataproc.editor) - Compute Engine 預設服務帳戶的服務帳戶使用者 (
roles/iam.serviceAccountUser)
服務帳戶角色
為確保 Compute Engine 預設服務帳戶具備建立 Managed Service for Apache Spark 叢集所需的權限,請要求管理員將專案的下列 IAM 角色授予 Compute Engine 預設服務帳戶:
-
全部:Dataproc 工作站 (
roles/dataproc.worker)
建立叢集
執行下列 gcloud
Managed Service for Apache Spark clusters
create 指令,建立名為 example-cluster 的叢集。
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.
更新叢集
執行下列指令,將叢集的 worker 數量變更為 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.
如要將 worker 節點數量減少至原始值 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 工作。