Cloud Profiler

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 e spark.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.

  1. Abilita il Profiler.

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

  1. 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 o false 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:

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