瞭解如何使用 Dataproc Serverless,在 Dataproc 管理的運算基礎架構中提交批次工作負載,並視需要調整資源。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
在 Google Cloud 控制台中,前往「Dataproc Batches」。
按一下 [建立]。
選取並填寫下列欄位,提交可計算 pi 概略值的 Spark 批次工作負載:
- 批次資訊:
- 批次 ID:指定批次工作負載的 ID。這個值必須是 4 至 63 個半形字元。有效字元為
/[a-z][0-9]-/
。 - 區域:選取工作負載的執行區域。
- 批次 ID:指定批次工作負載的 ID。這個值必須是 4 至 63 個半形字元。有效字元為
- 容器:
- 批次類型:Spark。
- 執行階段版本:系統會選取預設的執行階段版本。您可以選擇指定非預設的 Dataproc Serverless 執行階段版本。
- Main 類別:
org.apache.spark.examples.SparkPi
- JAR 檔案 (這個檔案已預先安裝在 Dataproc Serverless Spark 執行環境中)。
file:///usr/lib/spark/examples/jars/spark-examples.jar
- 引數:1000。
- 執行設定:您可以指定用於執行工作負載的服務帳戶。如果未指定服務帳戶,工作負載會透過 Compute Engine 預設服務帳戶執行。您的服務帳戶必須具備 Dataproc 工作者角色。
- 網路設定:在工作階段區域中選取子網路。Dataproc Serverless 會在指定子網路中啟用私人 Google 存取權 (PGA)。如需網路連線需求,請參閱 Dataproc Serverless for Spark 網路設定。
- 屬性:輸入支援的 Spark 屬性的
Key
(屬性名稱) 和Value
,以便在 Spark 批次工作負載上設定。注意:與 Compute Engine 上的 Dataproc 叢集屬性不同,Dataproc Serverless for Spark 工作負載屬性不包含spark:
前置字串。 - 其他選項:
- 您可以設定批次工作負載,以便使用外部自行管理的 Hive Metastore。
- 您可以使用永久記錄伺服器 (PHS)。PHS 必須位於執行批次工作負載的區域。
- 批次資訊:
按一下「提交」,即可執行 Spark 批次工作負載。
- REGION: 指定工作負載的區域。
- 其他選項:您可以新增
gcloud dataproc batches submit spark
旗標,指定其他工作負載選項和 Spark 屬性。--jars
:範例 JAR 檔案已預先安裝在 Spark 執行環境中,傳遞至 SparkPi 工作負載的1000
指令引數會指定 pi 估計邏輯的 1000 次迭代 (工作負載輸入引數會列在「--」之後)。--subnet
:您可以新增這個標記,指定工作階段區域中的子網路名稱。如果您未指定子網路,Dataproc Serverless 會在工作階段所在的區域中選取default
子網路。Dataproc Serverless 會在子網路上啟用私人 Google 存取權 (PGA)。如需網路連線需求,請參閱 Dataproc Serverless for Spark 網路設定。--properties
:您可以新增這個標記,輸入支援的 Spark 屬性,供 Spark 批次工作負載使用。--deps-bucket
:您可以新增這個標記,指定 Dataproc Serverless 上傳工作負載依附元件的 Cloud Storage 值區。您不需要指定值區的gs://
URI 前置字串,可以指定值區路徑或值區名稱。在執行批次工作負載之前,Dataproc Serverless for Spark 會將本機檔案上傳至 bucket 中的/dependencies
資料夾。注意:如果批次工作負載參照本機電腦上的檔案,則此旗標為必填。--ttl
:您可以新增--ttl
標記,指定批次生命週期的時間長度。如果工作負載超過這個時間長度,系統會無條件終止工作,而不會等待目前的工作完成。使用s
、m
、h
或d
(秒、分、小時或天) 尾碼指定時間長度。最小值為 10 分鐘 (10m
),最大值為 14 天 (14d
)。- 1.1 或 2.0 執行階段批次:如果未為 1.1 或 2.0 執行階段批次工作負載指定
--ttl
,系統會允許工作負載執行,直到自然結束為止 (如果不結束,則會一直執行)。 - 2.1 以上版本的執行階段批次:如果未為 2.1 以上版本的執行階段批次工作負載指定
--ttl
,則預設為4h
。
- 1.1 或 2.0 執行階段批次:如果未為 1.1 或 2.0 執行階段批次工作負載指定
--service-account
:您可以指定要用來執行工作負載的服務帳戶。如果您未指定服務帳戶,工作負載會在 Compute Engine 預設服務帳戶下執行。您的服務帳戶必須具備 Dataproc 工作者角色。- Hive Metastore:下列指令會使用標準 Spark 設定,將批次工作負載設為使用外部 自行管理的 Hive Metastore。
gcloud dataproc batches submit spark\ --properties=spark.sql.catalogImplementation=hive,spark.hive.metastore.uris=METASTORE_URI,spark.hive.metastore.warehouse.dir=WAREHOUSE_DIR> \ other args ...
- 永久記錄伺服器:
- 下列指令會在單一節點 Dataproc 叢集中建立 PHS。PHS 必須位於執行批次工作負載的地區,且 Cloud Storage bucket-name 必須存在。
gcloud dataproc clusters create PHS_CLUSTER_NAME \ --region=REGION \ --single-node \ --enable-component-gateway \ --properties=spark:spark.history.fs.logDirectory=gs://bucket-name/phs/*/spark-job-history
- 提交批次工作負載,指定正在執行的永久記錄伺服器。
gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ --history-server-cluster=projects/project-id/regions/region/clusters/PHS-cluster-name \ -- 1000
- 下列指令會在單一節點 Dataproc 叢集中建立 PHS。PHS 必須位於執行批次工作負載的地區,且 Cloud Storage bucket-name 必須存在。
- 執行階段版本:使用
--version
標記,指定工作負載的 Dataproc Serverless 執行階段版本。gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ --version=VERSION -- 1000
- project-id: Google Cloud 專案 ID。
- region:Dataproc Serverless 執行工作負載的 Compute Engine 區域。
- PROJECT_ID:您的 Google Cloud 專案 ID。 Google Cloud 主控台資訊主頁的「Project info」專區會列出專案 ID。
- REGION:工作階段區域。
提交 Spark 批次工作負載
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Dataproc Serverless API,建立及提交 Dataproc Serverless 以處理 Spark 批次工作負載。
控制台
gcloud
如要提交 Spark 批次工作負載,以便計算 pi
的近似值,請在本機終端機視窗或 Cloud Shell 中執行下列 gcloud CLI gcloud dataproc batches submit spark
指令。
gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ -- 1000
請依指示取代下列項目:
API
本節說明如何建立批次工作負載,以便使用 Dataproc Serverless for Spark batches.create
` 計算 pi
的近似值。
使用任何要求資料之前,請先替換以下項目:
注意:
HTTP 方法和網址:
POST https://dataproc.googleapis.com/v1/projects/project-id/locations/region/batches
JSON 要求主體:
{ "sparkBatch":{ "args":[ "1000" ], "jarFileUris":[ "file:///usr/lib/spark/examples/jars/spark-examples.jar" ], "mainClass":"org.apache.spark.examples.SparkPi" } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name":"projects/project-id/locations/region/batches/batch-id", "uuid":",uuid", "createTime":"2021-07-22T17:03:46.393957Z", "sparkBatch":{ "mainClass":"org.apache.spark.examples.SparkPi", "args":[ "1000" ], "jarFileUris":[ "file:///usr/lib/spark/examples/jars/spark-examples.jar" ] }, "runtimeInfo":{ "outputUri":"gs://dataproc-.../driveroutput" }, "state":"SUCCEEDED", "stateTime":"2021-07-22T17:06:30.301789Z", "creator":"account-email-address", "runtimeConfig":{ "properties":{ "spark:spark.executor.instances":"2", "spark:spark.driver.cores":"2", "spark:spark.executor.cores":"2", "spark:spark.app.name":"projects/project-id/locations/region/batches/batch-id" } }, "environmentConfig":{ "peripheralsConfig":{ "sparkHistoryServerConfig":{ } } }, "operation":"projects/project-id/regions/region/operation-id" }
估算工作負載費用
Dataproc Serverless for Spark 工作負載會耗用資料運算單元 (DCU) 和重組儲存空間資源。如需輸出 Dataproc UsageMetrics 的範例,以便估算工作負載資源用量和費用,請參閱「Dataproc Serverless 定價」一文。
後續步驟
瞭解下列內容: