Questo documento descrive come eseguire il profiling dell'utilizzo delle risorse di Dataproc Serverless per Spark. Cloud Profiler raccoglie e genera report in modo continuo sull'utilizzo della CPU e sull'allocazione della memoria delle applicazioni. Puoi attivare il profiling quando invii un batch o crei un carico di lavoro della sessione utilizzando le proprietà di profilazione elencate nella tabella seguente.
Dataproc Serverless per Spark aggiunge le opzioni JVM correlate alle configurazioni spark.driver.extraJavaOptions
e spark.executor.extraJavaOptions
utilizzate per il carico di lavoro.
Opzione | Descrizione | Valore | Predefinito |
---|---|---|---|
dataproc.profiling.enabled |
Attiva la profilazione del carico di lavoro | true o false |
false |
dataproc.profiling.name |
Nome del profilo nel servizio Profiler | PROFILE_NAME | spark-WORKLOAD_TYPE-WORKLOAD_ID, dove: |
Note:
- Dataproc Serverless per Spark imposta la versione del profiler sull'UUID del batch o sull'UUID della sessione.
- Profiler supporta i seguenti tipi di carichi di lavoro Spark:
Spark
,PySpark
,SparkSql
eSparkR
. - Un carico di lavoro deve essere eseguito per più di tre minuti per consentire a Profiler di raccogliere e caricare i dati in un progetto.
- Puoi sostituire le opzioni di profilazione inviate con un carico di lavoro creando un
SparkConf
e impostandoextraJavaOptions
nel codice. Tieni presente che l'impostazione delle proprietàextraJavaOptions
al momento dell'invio del workload non ha la precedenza sulle opzioni di profilazione inviate con il workload.
Per un esempio di opzioni del profiler utilizzate con un invio batch, consulta l'esempio di carico di lavoro batch PySpark.
Attiva la profilazione
Per attivare il profiling in un carico di lavoro, completa i seguenti passaggi:
- Attiva il Profiler.
- Se utilizzi un account di servizio VM personalizzato, conceda il ruolo Agente di Cloud Profiler all'account di servizio VM personalizzato. Questo ruolo contiene le autorizzazioni obbligatorie di Profiler.
- Imposta le proprietà di profilazione quando invii un carico di lavoro batch o crei un modello di sessione.
Esempio di carico di lavoro batch PySpark
L'esempio seguente utilizza gcloud CLI per inviare un carico di lavoro batch PySpark con il profiling abilitato.
gcloud dataproc batches submit pyspark PYTHON_WORKLOAD_FILE \ --region=REGION \ --properties=dataproc.profiling.enabled=true,dataproc.profiling.name=PROFILE_NAME \ -- other args
Vengono creati due profili:
PROFILE_NAME-driver
per profilare le attività del driver SparkPROFILE_NAME-executor
per profilare le attività dell'eseguitore Spark
Visualizza profili
Puoi visualizzare i profili da Profiler nella console Google Cloud.