Cloud Profiler raccoglie e segnala continuamente le informazioni sull'utilizzo della CPU delle applicazioni e sull'allocazione della memoria.
Requisiti:
Profiler supporta solo i tipi di job Dataproc Hadoop e Spark (Spark, PySpark, SparkSql e SparkR).
I job devono essere eseguiti più di 3 minuti per consentire a Profiler di raccogliere e caricare dati nel tuo progetto.
Dataproc riconosce cloud.profiler.enable
e le altre proprietà cloud.profiler.*
(vedi Opzioni di Profiler), quindi aggiunge le opzioni della JVM del profiler pertinenti alle seguenti configurazioni:
- Spark:
spark.driver.extraJavaOptions
espark.executor.extraJavaOptions
- MapReduce:
mapreduce.task.profile
e altre proprietàmapreduce.task.profile.*
Attiva profilazione
Completa i passaggi seguenti per abilitare e utilizzare Profiler sui tuoi job Dataproc Spark e Hadoop.
Crea un cluster Dataproc con gli ambiti degli account di servizio impostati su
monitoring
per consentire al cluster di comunicare con il servizio profiler.
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
Invia un job di Dataproc con le opzioni di Profiler
- Invia un job Dataproc Spark o Hadoop con una o più delle seguenti opzioni di Profiler:
Opzione Descrizione Valore Obbligatorio/Facoltativo Valore predefinito Note cloud.profiler.enable
Abilita la profilazione del job true
ofalse
Obbligatorio false
cloud.profiler.name
Nome utilizzato per creare il profilo sul servizio Profiler profile-name Facoltativo UUID del job Dataproc cloud.profiler.service.version
Una stringa fornita dall'utente per identificare e distinguere i risultati del profiler. Profiler Service Version Facoltativo UUID del job Dataproc mapreduce.task.profile.maps
Intervallo numerico di attività di mappatura da profilare (esempio: per un massimo di 100, specifica "0-100") number range Facoltativo 0-10000 Si applica solo ai job MapReduce di Hadoop mapreduce.task.profile.reduces
Intervallo numerico di attività del riduttore da profilare (esempio: per un massimo di 100, specificare "0-100") number range Facoltativo 0-10000 Si applica solo ai job MapReduce di Hadoop
Esempio di PySpark
gcloud
Invio di job PySpark con esempio di profilazione:
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
Verranno creati due profili:
profiler_name-driver
per profilare le attività del driver Sparkprofiler_name-executor
per profilare le attività dell'esecutore Spark
Ad esempio, se profiler_name
è "spark_word_count_job",
vengono creati i profili spark_word_count_job-driver
e spark_word_count_job-executor
.
Esempio di Hadoop
gcloud
Invio del job Hadoop (teragen mapReduce) con esempio di profilazione:
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
Visualizza profili
Visualizza i profili da Profiler nella console Google Cloud.
Passaggio successivo
- Consulta la documentazione di Monitoring
- Consulta la documentazione di Logging
- Esplora l'osservabilità di Google Cloud