Cloud Profiler

Cloud Profiler collecte et signale en permanence des informations sur l'utilisation du processeur et l'allocation de mémoire de vos applications.

Conditions requises :

  • Profiler n'est compatible qu'avec les types de tâches Dataproc 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.

Dataproc reconnaît cloud.profiler.enable et les autres propriétés cloud.profiler.* (consultez la section Options de Profiler), puis ajoute les options JVM de profiler pertinentes aux configurations suivantes:

  • Spark: spark.driver.extraJavaOptions et spark.executor.extraJavaOptions
  • MapReduce: mapreduce.task.profile et d'autres propriétés mapreduce.task.profile.*

Activer le profilage

Suivez la procédure ci-dessous pour activer et utiliser Profiler sur vos tâches Dataproc Spark et Hadoop.

  1. Activez le profileur.

  2. Créez un cluster Dataproc avec les champs d'application de compte de service définis sur monitoring pour permettre au cluster de communiquer avec le service de profilage.

  3. 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 profilage requises.

gcloud

gcloud dataproc clusters create cluster-name \
    --scopes=cloud-platform \
    --region=region \
    other args ...

Envoyer une tâche Dataproc avec les options de Profiler

  1. Envoyez une tâche Dataproc Spark ou Hadoop avec une ou plusieurs des options Profiler suivantes :
    Option Description Value Obligatoire/Facultative Par défaut Notes
    cloud.profiler.enable Active le profilage de la tâche. true ou false Valeur false
    cloud.profiler.name Nom utilisé pour créer le profil sur le service Profiler profile-name Facultatif UUID de tâche Dataproc
    cloud.profiler.service.version Chaîne fournie par l'utilisateur pour identifier et distinguer les résultats du profileur. Profiler Service Version Facultatif UUID de tâche Dataproc
    mapreduce.task.profile.maps Plage 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.reduces Plage 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 :

  1. profiler_name-driver pour profiler les tâches du pilote Spark
  2. profiler_name-executor pour 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

CLI gcloud

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 dans la console Google Cloud.

Étape suivante