Cloud Profiler

Cloud Profiler 會持續收集及回報應用程式 CPU 使用率和記憶體分配資訊。

必要操作:

  • 剖析器僅支援 Dataproc Hadoop 和 Spark 工作類型 (Spark、PySpark、SparkSql 和 SparkR)。

  • 作業必須執行超過 3 分鐘,Profiler 才能收集資料並上傳至專案。

Dataproc 會辨識 cloud.profiler.enable 和其他 cloud.profiler.* 屬性 (請參閱「分析器選項」),然後將相關的分析器 JVM 選項附加至下列設定:

  • Spark:spark.driver.extraJavaOptionsspark.executor.extraJavaOptions
  • MapReduce:mapreduce.task.profile 和其他 mapreduce.task.profile.* 屬性

啟用剖析功能

完成下列步驟,即可在 Dataproc Spark 和 Hadoop 工作中啟用及使用 Profiler。

  1. 啟用分析器

  2. 建立 Dataproc 叢集,並將服務帳戶範圍設為 monitoring,允許叢集與剖析器服務通訊。

  3. 如果您使用自訂 VM 服務帳戶,請將 Cloud Profiler 代理程式角色授予自訂 VM 服務帳戶。這個角色包含必要的剖析器服務權限。

gcloud

gcloud dataproc clusters create cluster-name \
    --scopes=cloud-platform \
    --region=region \
    other args ...

提交 Dataproc 工作並設定分析器選項

  1. 提交 Dataproc Spark 或 Hadoop 工作,並使用下列一或多個分析器選項:
    選項 說明 必要/選用 預設 附註
    cloud.profiler.enable 啟用作業的剖析功能 truefalse 必填 false
    cloud.profiler.name 用來在 Profiler 服務中建立設定檔的名稱 profile-name 選用 Dataproc 工作 UUID
    cloud.profiler.service.version 使用者提供的字串,用於識別及區分剖析器結果。 Profiler Service Version 選用 Dataproc 工作 UUID
    mapreduce.task.profile.maps 地圖工作對商家檔案的數值範圍 (例如:最多 100 個,請指定「0-100」) number range 選用 0-10000 僅適用於 Hadoop MapReduce 工作
    mapreduce.task.profile.reduces 要剖析的縮減器工作數值範圍 (例如,如要剖析最多 100 個工作,請指定「0-100」) number range 選用 0-10000 僅適用於 Hadoop MapReduce 工作

PySpark 範例

Google Cloud CLI

提交 PySpark 工作並進行剖析的範例:

gcloud dataproc jobs submit pyspark python-job-file \
    --cluster=cluster-name \
    --region=region \
    --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \
    --  job args

系統會建立兩個設定檔:

  1. profiler_name-driver,用於剖析 Spark 驅動程式工作
  2. profiler_name-executor,即可剖析 Spark 執行者工作

舉例來說,如果 profiler_name 是「spark_word_count_job」,系統就會建立 spark_word_count_job-driverspark_word_count_job-executor 設定檔。

Hadoop 範例

gcloud CLI

以下是提交 Hadoop (teragen mapreduce) 工作並進行剖析的範例:

gcloud dataproc jobs submit hadoop \
    --cluster=cluster-name \
    --region=region \
    --jar=jar-file \
    --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \
    --  teragen 100000 gs://bucket-name

查看設定檔

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

後續步驟