分析 Google Cloud Serverless for Apache Spark 資源用量

本文說明如何分析 Google Cloud 無伺服器 Apache Spark 資源的使用情形。Cloud Profiler 會持續收集及回報應用程式 CPU 使用率和記憶體分配資訊。提交批次或建立工作階段工作負載時,您可以使用下表列出的剖析屬性啟用剖析功能。Google Cloud Serverless for Apache Spark 會將相關的 JVM 選項附加至工作負載使用的 spark.driver.extraJavaOptionsspark.executor.extraJavaOptions 設定。

選項 說明 預設
dataproc.profiling.enabled 啟用工作負載的剖析功能 truefalse false
dataproc.profiling.name Profiler 服務中的設定檔名稱 PROFILE_NAME spark-WORKLOAD_TYPE-WORKLOAD_ID,其中:
  • WORKLOAD_TYPE 設為 batchsession
  • WORKLOAD_ID 設為 batchIdsessionId

注意:

  • Serverless for Apache Spark 會將剖析器版本設為批次 UUID工作階段 UUID
  • 分析器支援下列 Spark 工作負載類型:SparkPySparkSparkSqlSparkR
  • 工作負載必須執行超過三分鐘,Profiler 才能收集資料並上傳至專案。
  • 您可以建構 SparkConf,然後在程式碼中設定 extraJavaOptions,藉此覆寫隨工作負載提交的剖析選項。請注意,提交工作負載時設定 extraJavaOptions 屬性,不會覆寫工作負載提交的剖析選項。

如需搭配批次提交作業使用的剖析器選項範例,請參閱 PySpark 批次工作負載範例

啟用剖析功能

如要對工作負載啟用剖析功能,請完成下列步驟:

  1. 啟用分析器
  2. 如果您使用自訂 VM 服務帳戶,請將 Cloud Profiler 代理程式角色授予自訂 VM 服務帳戶。這個角色包含必要的 Profiler 權限。
  3. 提交批次工作負載建立工作階段範本時,請設定剖析屬性。

PySpark 批次工作負載範例

以下範例使用 gcloud CLI 提交已啟用剖析功能的 PySpark 批次工作負載。

gcloud dataproc batches submit pyspark PYTHON_WORKLOAD_FILE \
    --region=REGION \
    --properties=dataproc.profiling.enabled=true,dataproc.profiling.name=PROFILE_NAME \
    --  other args

系統會建立兩個設定檔:

  • PROFILE_NAME-driver,用於剖析 Spark 驅動程式工作
  • PROFILE_NAME-executor,即可剖析 Spark 執行者工作

查看設定檔

您可以在 Google Cloud 控制台的「Profiler」中查看設定檔。

後續步驟