Résultats et journaux des jobs Dataproc

Lorsque vous envoyez une tâche Dataproc, Dataproc collecte automatiquement le résultat de la tâche et le met à votre disposition. Cela signifie que vous pouvez rapidement examiner les résultats d'une tâche sans avoir à maintenir une connexion au cluster pendant que vos tâches s'exécutent ou consultent des fichiers journaux complexes.

Journaux Spark

Il existe deux types de journaux Spark: les journaux du pilote Spark et les journaux de l'exécuteur Spark. Les journaux du pilote Spark contiennent les résultats de la tâche. Les journaux de l'exécuteur Spark contiennent les résultats exécutables ou ceux du lanceur d'applications, tels que le message spark-submit "Envoyé pour l'application xxx", et peuvent être utiles pour déboguer les échecs de tâche.

Le pilote de job Dataproc, qui est différent du pilote Spark, est un lanceur d'applications pour de nombreux types de tâches. Lors du lancement de tâches Spark, il s'exécute en tant que wrapper sur l'exécutable spark-submit sous-jacent, ce qui lance le pilote Spark. Le pilote Spark exécute la tâche sur le cluster Dataproc en mode Spark client ou cluster:

  • Mode client: le pilote Spark exécute la tâche dans le processus spark-submit, et les journaux Spark sont envoyés au pilote de tâche Dataproc.

  • Mode cluster: le pilote Spark exécute la tâche dans un conteneur YAML. Les journaux de pilotes Spark ne sont pas disponibles pour le pilote de job Dataproc.

Présentation des propriétés des jobs Dataproc et Spark

Propriété Valeur Par défaut Description
dataproc:dataproc.logging.stackdriver.job.driver.enable True ou False false Doit être défini au moment de la création du cluster. Lorsque la valeur est true, le résultat du pilote de tâche se trouve dans Logging et est associé à la ressource de tâche. Lorsque false, le résultat du pilote de tâche ne se trouve pas dans Logging.
Remarque: Les paramètres de propriété de cluster suivants sont également requis pour activer les journaux de pilotes de tâches dans Logging. Ils sont définis par défaut lors de la création d'un cluster: dataproc:dataproc.logging.stackdriver.enable=true et dataproc:jobs.file-backed-output.enable=true.
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable True ou False false Doit être défini au moment de la création du cluster. Lorsque la valeur est définie sur true, les journaux de conteneur de job YAML sont associés à la ressource de tâche. Lorsque la valeur est false, les journaux de conteneur de job YARN sont associés à la ressource de cluster.
spark:spark.submit.deployMode client ou cluster client Permet de contrôler le mode Spark client ou cluster.

Jobs Spark envoyés à l'aide de l'API Dataproc jobs

Les tableaux de cette section listent l'effet de différents paramètres de propriété sur la destination des résultats du pilote de tâches Dataproc lorsque les tâches sont envoyées via l'API Dataproc jobs. Cela inclut l'envoi de tâches via la console Google Cloud, gcloud CLI et les bibliothèques clientes Cloud.

Les propriétés Dataproc et Spark répertoriées peuvent être définies avec l'option --properties lors de la création d'un cluster et s'appliquent à toutes les tâches Spark exécutées sur le cluster. Les propriétés Spark peuvent également être définies avec l'option --properties (sans le préfixe "spark:") lorsqu'une tâche est envoyée à l'API Dataproc jobs et ne s'appliquent qu'à la tâche.

Résultats du pilote de tâches Dataproc

Les tableaux suivants répertorient l'effet de différents paramètres de propriété sur la destination des résultats du pilote de tâches Dataproc.

dataproc:
dataproc.logging.stackdriver.job.driver.enable
Sortie
false (valeur par défaut)
  • Diffusé en streaming sur le client
  • Dans Cloud Storage, à l'emplacement driverOutputResourceUri généré par Dataproc
  • Hors de Logging
true
  • Diffusé en streaming sur le client
  • Dans Cloud Storage, à l'emplacement driverOutputResourceUri généré par Dataproc
  • Dans Logging: dataproc.job.driver sous la ressource de tâche.

Journaux du pilote Spark

Les tableaux suivants répertorient l'effet de différents paramètres de propriété sur la destination des journaux du pilote Spark.

spark:
spark.submit.deployMode
dataproc:
dataproc.logging.stackdriver.job.driver.enable
dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Sortie du pilote
client false (valeur par défaut) True ou False
  • Diffusé en streaming sur le client
  • Dans Cloud Storage, à l'emplacement driverOutputResourceUri généré par Dataproc
  • Hors de Logging
client true True ou False
  • Diffusé en streaming sur le client
  • Dans Cloud Storage, à l'emplacement driverOutputResourceUri généré par Dataproc
  • Dans Logging: dataproc.job.driver sous la ressource de tâche
cluster false (valeur par défaut) false
  • Non diffusé sur le client
  • Hors de Cloud Storage
  • Dans Logging, yarn-userlogs sous la ressource de cluster
cluster true true
  • Non diffusé sur le client
  • Hors de Cloud Storage
  • Dans Logging: dataproc.job.yarn.container sous la ressource de tâche

Journaux de l'exécuteur Spark

Les tableaux suivants répertorient l'effet des différents paramètres de propriété sur la destination des journaux de l'exécuteur Spark.

dataproc:
dataproc.logging.stackdriver.job.yarn.container.enable
Journal des exécuteurs
false (valeur par défaut) Dans Logging: yarn-userlogs sous la ressource de cluster
true Dans Logging, dataproc.job.yarn.container se trouve sous la ressource de tâche.

Jobs Spark envoyés sans utiliser l'API Dataproc jobs

Cette section décrit l'effet de différents paramètres de propriété sur la destination des journaux de tâches Spark lorsque les tâches sont envoyées sans utiliser l'API Dataproc jobs, par exemple lors de l'envoi d'une tâche directement sur un nœud de cluster à l'aide de spark-submit, ou lors de l'utilisation d'un notebook Jupyter ou Zeppelin. Ces tâches ne possèdent pas d'ID de tâche ni de pilote Dataproc.

Journaux du pilote Spark

Les tableaux suivants répertorient l'effet de différents paramètres de propriété sur la destination des journaux du pilote Spark pour les tâches qui n'ont pas été envoyées via l'API Dataproc jobs.

spark:
spark.submit.deployMode
Sortie du pilote
client
  • Diffusé en streaming sur le client
  • Hors de Cloud Storage
  • Hors de Logging
cluster
  • Non diffusé sur le client
  • Hors de Cloud Storage
  • Dans Logging, yarn-userlogs sous la ressource de cluster

Journaux de l'exécuteur Spark

Lorsque des tâches Spark ne sont pas envoyées via l'API Dataproc jobs, les journaux des exécuteurs se trouvent dans Logging yarn-userlogs sous la ressource de cluster.

Afficher le résultat du job

Vous pouvez accéder aux résultats du job Dataproc dans la console Google Cloud, gcloud CLI, Cloud Storage ou Logging.

Console

Pour afficher les résultats du job, accédez à la section Jobs (Tâches) Dataproc de votre projet, puis cliquez sur l'ID du job pour afficher le résultat.

Si la tâche est en cours d'exécution, le résultat de la tâche est régulièrement actualisé avec un nouveau contenu.

Commande gcloud

Lorsque vous envoyez une tâche à l'aide de la commande gcloud dataproc jobssubmit, le résultat s'affiche dans la console. Vous pouvez "rejoindre" la sortie ultérieurement, sur un autre ordinateur ou dans une nouvelle fenêtre en transmettant l'ID de votre tâche à la commande gcloud dataproc jobswait. L'ID de tâche est un GUID, tel que 5c1754a5-34f7-4553-b667-8a1199cb9cab. Voici un exemple.

gcloud dataproc jobs wait 5c1754a5-34f7-4553-b667-8a1199cb9cab \
    --project my-project-id --region my-cluster-region
Waiting for job output...
... INFO gcs.GoogleHadoopFileSystemBase: GHFS version: 1.4.2-hadoop2
... 16:47:45 INFO client.RMProxy: Connecting to ResourceManager at my-test-cluster-m/
...

Cloud Storage

Les résultats du job sont stockés dans Cloud Storage, dans le bucket de préproduction ou dans le bucket que vous avez spécifié lors de la création du cluster. Un lien vers les résultats du job dans Cloud Storage est indiqué dans le champ Job.driverOutputResourceUri renvoyé par:

  • une requête d'API jobs.get.
  • une commande gcloud dataproc jobs describe job-id.
    $ gcloud dataproc jobs describe spark-pi
    ...
    driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput
    ...
    

Journalisation

Consultez la page Journaux Dataproc pour en savoir plus sur l'affichage des résultats d'un job Dataproc dans Logging.