Cloud Profiler collecte et signale en permanence des informations sur l'utilisation du processeur et l'allocation de mémoire de vos applications.
Exigences :
Profiler n'est compatible qu'avec les types de tâches Managed Service pour Apache Spark Hadoop et Spark (Spark, PySpark, SparkSql et SparkR).
Les tâches doivent durer plus de trois minutes pour permettre à Profiler de collecter et d'importer des données dans votre projet.
Managed Service pour Apache Spark reconnaît cloud.profiler.enable et les autres
cloud.profiler.* propriétés (consultez
Options de Profiler), puis ajoute
les options JVM de profiler pertinentes aux configurations suivantes :
- Spark :
spark.driver.extraJavaOptionsetspark.executor.extraJavaOptions - MapReduce :
mapreduce.task.profileet autresmapreduce.task.profile.*propriétés
Activer le profilage
Suivez la procédure ci-dessous pour activer et utiliser Profiler sur vos tâches Managed Service pour Apache Spark Spark et Hadoop.
Créez un cluster Managed Service pour Apache Spark avec les champs d'application de compte de service définis sur
monitoringpour permettre au cluster de communiquer avec le service de profilage.Si vous utilisez un compte de service de VM personnalisé, attribuez-lui le rôle Agent Cloud Profiler. Ce rôle contient les autorisations de service de profiler requises.
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
Envoyer une tâche Managed Service pour Apache Spark avec les options de Profiler
- Envoyez une tâche Managed Service pour Apache Spark Spark ou Hadoop
avec une ou plusieurs des options Profiler suivantes :
Option Description Value Obligatoire/Facultative Par défaut Notes cloud.profiler.enableActive le profilage de la tâche. trueoufalseValeur falsecloud.profiler.nameNom utilisé pour créer le profil sur le service Profiler profile-name Facultatif UUID de la tâche Managed Service pour Apache Spark cloud.profiler.service.versionChaîne fournie par l'utilisateur pour identifier et distinguer les résultats du profileur. Profiler Service Version Facultatif UUID de la tâche Managed Service pour Apache Spark mapreduce.task.profile.mapsPlage numérique des tâches de mappage à profiler (par exemple, pour 100, indiquez "0-100") number range Facultatif 0-10000 S'applique uniquement aux tâches mapreduce Hadoop. mapreduce.task.profile.reducesPlage numérique des tâches de réducteur à profiler (par exemple, pour 100, indiquez "0-100") number range Facultatif 0-10000 S'applique uniquement aux tâches MapReduce Hadoop.
Exemple PySpark
Google Cloud CLI
Envoi d'une tâche PySpark avec un exemple de profilage :
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
Deux profils seront créés :
profiler_name-driverpour profiler les tâches du pilote Sparkprofiler_name-executorpour profiler les tâches de l'exécuteur Spark
Par exemple, si les éléments profiler_name sont "spark_word_count_job", spark_word_count_job-driver et spark_word_count_job-executor sont créés.
Exemple Hadoop
Gcloud CLI
Envoi de tâche Hadoop (teragen MapReduce) avec un exemple de profilage :
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
Afficher les profils
Affichez les profils de Profiler sur la Google Cloud console.
Étape suivante
- Consultez la documentation de Monitoring.
- Consultez la documentation de Logging.
- Découvrez Google Cloud Observability.