Résultats et journaux des jobs Dataproc

Lorsque vous envoyez un job Dataproc, Dataproc collecte automatiquement les et le met à votre disposition. Cela signifie que vous pouvez examiner rapidement les résultats d'un job sans avoir à gérer de connexion au cluster pendant que vos jobs s'exécutent ou consultent des 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 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 "Adresse e-mail de l'application soumise xxx" un message peut être utile pour déboguer les échecs de tâches.

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 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 répertorient 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 aussi être définies l'option --properties (sans le préfixe "spark:") lorsqu'une tâche est envoyés à l'API Dataproc jobs, et ne s'appliqueront qu'à la tâche.

Résultats du pilote de jobs 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 jobs Dataproc.

dataproc:
dataproc.logging.stackdriver.job.driver.enable
Sortie
false (valeur par défaut)
  • Diffusion vers le client
  • Dans Cloud Storage, au niveau du Dataproc driverOutputResourceUri
  • Pas dans Logging
vrai
  • Diffusion vers le client
  • Dans Cloud Storage, au niveau du Dataproc 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 du Dataproc driverOutputResourceUri
  • Pas dans Logging
Client vrai True ou False
  • Diffusion vers le client
  • Dans Cloud Storage, au niveau du Dataproc driverOutputResourceUri
  • Dans Logging: dataproc.job.driver sous la ressource de job
cluster false (valeur par défaut) faux
  • Non diffusé vers le client
  • En dehors de 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 n'ont pas d'ID ni de pilotes 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é vers le client
  • En dehors de 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 du 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

Le résultat du job est stocké dans Cloud Storage le bucket de préproduction ou le bucket que vous avez 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

Consultez la page Journaux Dataproc. pour savoir comment afficher les résultats d'un job Dataproc dans Logging.