Cloud Profiler raccoglie e segnala continuamente informazioni sull'utilizzo della CPU e sull'allocazione della memoria dell'applicazione.
Requisiti:
Profiler supporta solo i tipi di job Hadoop e Spark (Spark, PySpark, SparkSql e SparkR) di Dataproc.
I job devono essere eseguiti per più di 3 minuti per consentire a Profiler di raccogliere e caricare i dati nel tuo progetto.
Dataproc riconosce cloud.profiler.enable
e le altre proprietà
cloud.profiler.*
(vedi
Opzioni del profiler), quindi aggiunge
le opzioni 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 seguenti passaggi per abilitare e utilizzare Profiler nei tuoi job Dataproc Spark e Hadoop.
Crea un cluster Dataproc con ambiti dell'account di servizio impostati su
monitoring
per consentire al cluster di comunicare con il servizio Profiler.Se utilizzi un service account VM personalizzato, concedi il ruolo Agente Cloud Profiler al account di servizio VM personalizzato. Questo ruolo contiene le autorizzazioni del servizio Profiler richieste.
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
Inviare un job 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 Obbligatoria/Facoltativa Predefinito Note cloud.profiler.enable
Attiva la profilazione del job true
ofalse
Obbligatorio false
cloud.profiler.name
Nome utilizzato per creare il profilo nel servizio Profiler profile-name Facoltativo UUID job Dataproc cloud.profiler.service.version
Una stringa fornita dall'utente per identificare e distinguere i risultati del profiler. Profiler Service Version Facoltativo UUID job Dataproc mapreduce.task.profile.maps
Intervallo numerico delle attività della mappa per il profilo (ad 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 delle attività di riduzione da profilare (ad esempio, per un massimo di 100, specifica "0-100") number range Facoltativo 0-10000 Si applica solo ai job MapReduce di Hadoop
Esempio PySpark
Google Cloud CLI
Esempio di invio di un job PySpark con 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 conducente di 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 Hadoop
Interfaccia a riga di comando gcloud
Esempio di invio di job Hadoop (teragen mapreduce) con 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 .
Passaggi successivi
- Consulta la documentazione di Monitoring.
- Consulta la documentazione di Logging.
- Esplora Google Cloud Observability