Cloud Profiler

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.extraJavaOptions e spark.executor.extraJavaOptions
  • MapReduce: mapreduce.task.profile e altre mapreduce.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.

  1. Attiva Profiler.

  2. Crea un cluster Managed Service per Apache Spark con gli ambiti del service account impostati su monitoring per consentire al cluster di comunicare con il servizio Profiler.

  3. 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

  1. 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.enable Attiva la profilazione del job true o false Obbligatorio false
    cloud.profiler.name Nome utilizzato per creare il profilo nel servizio Profiler profile-name Facoltativo UUID del job Managed Service per Apache Spark
    cloud.profiler.service.version Una 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.maps Intervallo 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.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 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:

  1. profiler_name-driver per profilare le attività del driver Spark
  2. profiler_name-executor per 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