Résultats et journaux des jobs Dataproc

Lorsque vous envoyez une tâche Dataproc, Dataproc recueille automatiquement la sortie de la tâche et la met à votre disposition. Cela signifie que vous pouvez rapidement consulter les résultats de la tâche sans avoir à maintenir une connexion au cluster pendant l'exécution de vos tâches ni à parcourir des fichiers journaux compliqués.

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 du job. Les journaux de l'exécuteur Spark contiennent un exécutable de job ou la sortie du lanceur d'applications, par exemple spark-submit "Demande d'application xxx" un message peut être utile pour déboguer les échecs de tâches.

Le pilote de tâche Dataproc, qui est distinct du pilote Spark, est un lanceur de nombreux types de tâches. Lors du lancement de jobs Spark, il s'exécute sur l'exécutable spark-submit sous-jacent, qui lance Spark pilote. Le pilote Spark exécute le job sur le cluster Dataproc dans Spark Mode 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 jobs Dataproc.

  • Mode cluster : le pilote Spark exécute la tâche dans un conteneur YARN. Pilote Spark les journaux ne sont pas disponibles pour le pilote de jobs 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 faux Doit être défini au moment de la création du cluster. Lorsque true, les résultats du pilote de jobs sont dans Logging. associées à la ressource de job ; lorsque false, pilote de tâches ne figure pas dans Logging.
Remarque: Les paramètres de propriété de cluster suivants sont également requis pour activer les journaux des pilotes de jobs dans Logging. Ils sont définis par défaut lorsqu'un cluster créé: 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 faux Doit être défini au moment de la création du cluster. Lorsque la valeur est true, les journaux du conteneur YARN sont associés avec la ressource du job ; Lorsque false, la tâche est effectuée dans les journaux du conteneur YARN sont associés à la ressource de cluster.
spark:spark.submit.deployMode client ou cluster Client Contrôle 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 jobs Dataproc lorsque les jobs sont envoyés via l'API Dataproc jobs, qui inclut l'envoi de jobs via le la console Google Cloud, gcloud CLI et les bibliothèques clientes Cloud.

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

Résultats du pilote de tâches Dataproc

Les tableaux suivants indiquent l'impact des différents paramètres de propriété sur la destination de la sortie du pilote de tâche Dataproc.

dataproc:
dataproc.logging.stackdriver.job.driver.enable
Sortie
false (valeur par défaut)
  • Diffusion vers le client
  • Dans Cloud Storage, au niveau de driverOutputResourceUri
  • Pas dans Logging
vrai
  • Diffusion vers le client
  • Dans Cloud Storage, au niveau de driverOutputResourceUri
  • 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
  • Diffusion vers le client
  • Dans Cloud Storage, au niveau de driverOutputResourceUri
  • Pas dans Logging
Client vrai True ou False
  • Diffusion vers le client
  • Dans Cloud Storage, au niveau de driverOutputResourceUri
  • Dans Logging: dataproc.job.driver sous la ressource de job
cluster false (valeur par défaut) faux
  • Non diffusé en streaming vers le client
  • Hors Cloud Storage
  • Dans Logging yarn-userlogs, sous la ressource de cluster
cluster vrai vrai
  • Non diffusé vers le client
  • En dehors de Cloud Storage
  • Dans Logging: dataproc.job.yarn.container sous la ressource de job

Journaux de l'exécuteur Spark

Les tableaux suivants répertorient l'effet de 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
vrai Dans Logging dataproc.job.yarn.container, sous la ressource de job

Jobs Spark envoyés sans l'API Dataproc jobs

Cette section liste l'effet des différents paramètres de la propriété destination des journaux de jobs Spark lors de l'envoi de jobs sans utiliser l'API jobs Dataproc, par exemple lors de l'envoi un job directement sur un nœud de cluster à l'aide de spark-submit ou lorsque vous utilisez un ou un notebook Zeppelin. Ces tâches ne comportent pas d'ID ni de pilotes de tâches 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 jobs non envoyés via l'API jobs Dataproc.

spark:
spark.submit.deployMode
Sortie du pilote
Client
  • Diffusion vers le client
  • En dehors de Cloud Storage
  • Pas dans Logging
cluster
  • Non diffusé en streaming vers le client
  • Hors Cloud Storage
  • Dans Logging yarn-userlogs, sous la ressource de cluster

Journaux de l'exécuteur Spark

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

Afficher le résultat du job

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

Console

Pour afficher le résultat du job, accédez au fichier Dataproc de votre projet Emplois puis cliquez sur l'ID de job pour afficher les résultats.

Si le job est en cours d'exécution, le résultat est régulièrement actualisé avec de nouveaux contenus.

Commande gcloud

Lorsque vous envoyez une tâche avec gcloud dataproc jobs submit. , le résultat du job s'affiche dans la console. Vous pouvez "rejoindre" plus tard, sur un autre ordinateur ou dans dans une nouvelle fenêtre en transmettant l'ID de votre job gcloud dataproc jobs wait . 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

Dans Cloud Storage, le résultat de la tâche est stocké dans le bucket de préproduction ou le bucket spécifié lors de la création du cluster. Un lien vers le résultat du job Cloud Storage est fourni dans la Job.driverOutputResourceUri champ 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

Pour savoir comment afficher le résultat des tâches Dataproc dans Logging, consultez Journaux Dataproc.