Analyser l'utilisation des ressources Dataproc sans serveur pour Spark

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ù:
  • WORKLOAD_TYPE est défini sur 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 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 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 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:

  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 autorisations requises pour le 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 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 Spark
  • PROFILE_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.

Étape suivante