Cloud Profiler raccoglie e segnala continuamente informazioni sull'utilizzo della CPU e sull'allocazione della memoria delle applicazioni.
Requisiti:
Profiler supporta solo i tipi di job Hadoop e Spark di Managed Service per Apache Spark (Spark, PySpark, SparkSql e SparkR).
I job devono essere eseguiti per più di 3 minuti per consentire a Profiler di raccogliere e caricare i dati nel progetto.
Managed Service per Apache Spark riconosce cloud.profiler.enable e le altre
cloud.profiler.* proprietà (vedi
Opzioni di Profiler), quindi aggiunge
le opzioni JVM di Profiler pertinenti alle seguenti configurazioni:
- Spark:
spark.driver.extraJavaOptionsespark.executor.extraJavaOptions - MapReduce:
mapreduce.task.profilee altremapreduce.task.profile.*proprietà
Attivare la profilazione
Completa i seguenti passaggi per attivare e utilizzare Profiler nei job Spark e Hadoop di Managed Service per Apache Spark.
Crea un cluster Managed Service per Apache Spark con gli ambiti del service account impostati su
monitoringper consentire al cluster di comunicare con il servizio Profiler.Se utilizzi un service account VM personalizzato, assegna 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 Managed Service per Apache Spark con le opzioni di Profiler
- Invia un job Spark o Hadoop di Managed Service per Apache Spark
con una o più delle seguenti opzioni di Profiler:
Opzione Descrizione Valore Obbligatorio/Facoltativo Predefinito Note cloud.profiler.enableAttiva la profilazione del job trueofalseObbligatorio falsecloud.profiler.nameNome utilizzato per creare il profilo nel servizio Profiler profile-name Facoltativo UUID del job Managed Service per Apache Spark cloud.profiler.service.versionUna stringa fornita dall'utente per identificare e distinguere i risultati di Profiler. Profiler Service Version Facoltativo UUID del job Managed Service per Apache Spark mapreduce.task.profile.mapsIntervallo numerico delle attività di map 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 mapreduce.task.profile.reducesIntervallo 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 la 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-driverper profilare le attività del driver Sparkprofiler_name-executorper profilare le attività dell'executor Spark
Ad esempio, se il profiler_name è "spark_word_count_job",
vengono creati i profili spark_word_count_job-driver e spark_word_count_job-executor.
Esempio Hadoop
Gcloud CLI
Esempio di invio di un job Hadoop (teragen mapreduce) con la 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
Visualizzare i profili
Visualizza i profili di Profiler su lla Google Cloud consolle.
Passaggi successivi
- Consulta la documentazione di Monitoring
- Consulta la documentazione di Logging
- Esplora Google Cloud Observability