Cloud Profiler 會持續收集及回報應用程式的 CPU 用量和記憶體分配資訊。
需求條件:
Profiler 僅支援 Dataproc Hadoop 和 Spark 工作類型 (Spark、PySpark、SparkSql 和 SparkR)。
工作必須執行超過 3 分鐘,Profiler 才能收集資料並上傳至專案。
Dataproc 會辨識 cloud.profiler.enable 和其他 cloud.profiler.* 屬性 (請參閱「Profiler 選項」),並將相關的 Profiler JVM 選項附加至下列設定:
- Spark:
spark.driver.extraJavaOptions和spark.executor.extraJavaOptions - MapReduce:
mapreduce.task.profile和其他mapreduce.task.profile.*屬性
啟用剖析功能
如要在 Dataproc Spark 和 Hadoop 工作中啟用及使用 Profiler,請完成下列步驟。
建立 Dataproc 叢集,並將服務帳戶範圍設為
monitoring,允許叢集與 Profiler 服務進行通訊。若使用自訂 VM 服務帳戶,請將 Cloud Profiler 代理程式角色授予自訂 VM 服務帳戶。這個角色包含必要的 Profiler 服務權限。
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
提交 Dataproc 工作並設定 Profiler 選項
- 提交 Dataproc Spark 或 Hadoop 工作,並使用下列一或多個 Profiler 選項:
選項 說明 值 必要/選用 預設 附註 cloud.profiler.enable啟用工作剖析功能 true或false必要 falsecloud.profiler.name在 Profiler 服務建立剖析檔所用的名稱 profile-name 選用 Dataproc 工作 UUID cloud.profiler.service.version使用者提供的字串,用於識別及區分 Profiler 剖析結果。 Profiler Service Version 選用 Dataproc 工作 UUID mapreduce.task.profile.maps需進行剖析的 Map 任務數值範圍(例如:若最多 100 個,則指定「0-100」) number range 選用 0-10000 僅適用於 Hadoop MapReduce 工作 mapreduce.task.profile.reduces需進行剖析的 reducer 任務數值範圍 (例如:若最多 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
系統會建立兩個剖析檔:
profiler_name-driver用於剖析 Spark 驅動程式任務profiler_name-executor用於剖析 Spark 執行器任務
例如,profiler_name 若是「spark_word_count_job」,系統會建立 spark_word_count_job-driver 和 spark_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」中查看剖析檔。
後續步驟
- 請參閱 Monitoring 說明文件。
- 請參閱 Logging 說明文件
- 深入瞭解 Google Cloud Observability