本頁向您展示如何使用 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 角色,只要您在專案中獲派角色,即可選取該專案。
-
建立專案:如要建立專案,您需要「專案建立者」角色 (
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) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable dataproc.googleapis.com
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 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) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (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 叢集所需的權限,請要求管理員授予專案的 Compute Engine 預設服務帳戶下列 IAM 角色:
-
全部:
Dataproc 工作者 (
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 工作。