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.

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.extraJavaOptions et spark.executor.extraJavaOptions
  • MapReduce : mapreduce.task.profile et autres mapreduce.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.

  1. Activez le profileur.

  2. Créez un cluster Managed Service pour Apache Spark 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 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

  1. 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.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 la tâche Managed Service pour Apache Spark
    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 la tâche Managed Service pour Apache Spark
    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

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