Analyser l'utilisation des ressources Dataproc sans serveur pour Spark

Cloud Profiler collecte et génère des rapports en continu des informations sur l'utilisation du processeur et l'allocation de mémoire de l'application. 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 répertoriées dans le tableau suivant. Dataproc sans serveur pour Spark ajoute des options JVM associées aux spark.driver.extraJavaOptions et spark.executor.extraJavaOptions de configuration 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ù :
  • La valeur de WORKLOAD_TYPE est batch ou session
  • WORKLOAD_ID est défini sur batchId ou sessionId

Remarques :

  • Dataproc sans serveur pour Spark définit la version du profileur sur : UUID par lot ou l'UUID de session.
  • Profiler est compatible avec les types de charges de travail Spark suivants: Spark, PySpark, SparkSql et SparkR.
  • 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éfinissant extraJavaOptions dans votre code. Notez que définir des propriétés extraJavaOptions 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 lots, consultez Exemple de charge de travail par lot PySpark

Activer le profilage

Pour activer le profilage sur une charge de travail, procédez comme suit :

  1. Activez le profileur.
  2. Si vous utilisez un compte de service de VM personnalisé, attribuez-lui le rôle Agent Cloud Profiler. Ce rôle contient les ressources Autorisations du profileur.
  3. 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 gcloud CLI pour envoyer un lot PySpark charge de travail avec 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 Spark
  • PROFILE_NAME-executor pour profiler les tâches de l'exécuteur Spark

Afficher les profils

Vous pouvez consulter les profils à partir de Profiler dans la console Google Cloud.

Étape suivante