Ce document explique comment profiler l'utilisation des ressources Dataproc sans serveur pour Spark. Cloud Profiler collecte et signale en permanence des informations sur l'utilisation du processeur et l'allocation de mémoire de vos applications. Vous pouvez activer le profilage lorsque vous envoyez un lot ou créez une charge de travail de session à l'aide des propriétés de profilage indiquées dans le tableau suivant.
Dataproc sans serveur pour Spark ajoute les options JVM associées aux configurations spark.driver.extraJavaOptions
et spark.executor.extraJavaOptions
utilisées pour la charge de travail.
Option | Description | Valeur | Par défaut |
---|---|---|---|
dataproc.profiling.enabled |
Activer le profilage de la charge de travail | true ou false |
false |
dataproc.profiling.name |
Nom du profil sur le service Profiler | PROFILE_NAME | spark-WORKLOAD_TYPE-WORKLOAD_ID, où: |
Remarques :
- Dataproc sans serveur pour Spark définit la version du profileur sur l'UUID du lot ou l'UUID de la session.
- Profiler est compatible avec les types de charges de travail Spark suivants :
Spark
,PySpark
,SparkSql
etSparkR
. - Une charge de travail doit s'exécuter pendant plus de trois minutes pour permettre à Profiler de collecter et d'importer des données dans un projet.
- Vous pouvez remplacer les options de profilage envoyées avec une charge de travail en créant un
SparkConf
, puis en définissantextraJavaOptions
dans votre code. Notez que définir des propriétésextraJavaOptions
lorsque la charge de travail est envoyée ne remplace pas les options de profilage envoyées avec la charge de travail.
Pour obtenir un exemple d'options de profileur utilisées avec un envoi par lot, consultez l'exemple de charge de travail par lot PySpark.
Activer le profilage
Pour activer le profilage sur une charge de travail, procédez comme suit:
- Activez le profileur.
- Si vous utilisez un compte de service de VM personnalisé, attribuez-lui le rôle Agent Cloud Profiler. Ce rôle contient les autorisations requises pour le profileur.
- Définissez des propriétés de profilage lorsque vous envoyez une charge de travail par lot ou créez un modèle de session.
Exemple de charge de travail par lot PySpark
L'exemple suivant utilise la CLI gcloud pour envoyer une charge de travail par lot PySpark avec le profilage activé.
gcloud dataproc batches submit pyspark PYTHON_WORKLOAD_FILE \ --region=REGION \ --properties=dataproc.profiling.enabled=true,dataproc.profiling.name=PROFILE_NAME \ -- other args
Deux profils sont créés:
PROFILE_NAME-driver
pour profiler les tâches du pilote SparkPROFILE_NAME-executor
pour profiler les tâches de l'exécuteur Spark
Afficher les profils
Vous pouvez afficher les profils de Profiler dans la console Google Cloud.