Lorsque vous envoyez un job Managed Service pour Apache Spark, Managed Service pour Apache Spark collecte automatiquement le résultat du job et le met à votre disposition. Cela signifie que vous pouvez rapidement consulter les résultats du job sans avoir à maintenir une connexion au cluster pendant l'exécution de vos jobs 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 des jobs, tandis que les journaux de l'exécuteur Spark contiennent les résultats de l'exécutable ou du lanceur de jobs, tels qu'un message spark-submit "Submitted application ... ". Ils peuvent être utiles pour déboguer les échecs de jobs.
Le pilote de jobs Managed Service pour Apache Spark, qui est distinct du pilote Spark, est un lanceur pour de nombreux types de jobs. Lors du lancement de jobs Spark, il s'exécute en tant que wrapper sur l'exécutable spark-submit sous-jacent, qui lance le pilote Spark. Le pilote Spark exécute le job sur le cluster Managed Service pour Apache Spark en mode Spark
client ou cluster:
Mode
client: le pilote Spark exécute le job dans le processusspark-submit, et les journaux Spark sont envoyés au pilote de jobs Managed Service pour Apache Spark.Mode
cluster: le pilote Spark exécute le job dans un conteneur YARN. Les journaux du pilote Spark ne sont pas disponibles pour le pilote de jobs Managed Service pour Apache Spark.
Présentation des propriétés des jobs Managed Service pour Apache Spark et Spark
| Propriété | Valeur | Par défaut | Description |
|---|---|---|---|
dataproc:dataproc.logging.stackdriver.job.driver.enable |
True ou False | faux | Doit être défini lors de la création du cluster. Lorsque la valeur est true,
les résultats du pilote de jobs se trouvent dans Logging,
associés à la ressource de jobs. Lorsque la valeur est false, les résultats du pilote de jobs
ne se trouvent pas dans Logging.Remarque : Les paramètres de propriété de cluster suivants sont également requis pour activer les journaux du pilote de jobs 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 | faux | Doit être défini lors de la création du cluster.
Lorsque la valeur est true, les journaux de conteneurs YARN des jobs sont associés
à la ressource de jobs. Lorsque la valeur est false, les journaux de conteneurs YARN des jobs
sont associés à la ressource de cluster. |
spark:spark.submit.deployMode |
client ou cluster | client | Contrôle le mode client ou cluster de Spark. |
Jobs Spark envoyés à l'aide de l'API jobs Managed Service pour Apache Spark
Les tableaux de cette section indiquent l'effet des différents paramètres de propriété sur la
destination des résultats du pilote de jobs Managed Service pour Apache Spark lorsque les jobs sont envoyés
via l'API Managed Service pour Apache Spark jobs, qui inclut l'envoi de jobs via la
Google Cloud console, la gcloud CLI et les bibliothèques clientes Cloud.
Les propriétés Managed Service pour Apache Spark et Spark
listées peuvent être définies avec l'indicateur --properties lors de la création d'un cluster. Elles s'appliqueront
à tous les jobs Spark exécutés sur le cluster. Les propriétés Spark peuvent également être définies avec l'indicateur
--properties (sans le préfixe "spark:") lorsqu'un job est
envoyé à l'API jobs Managed Service pour Apache Spark. Elles ne s'appliqueront qu'au job.
Résultats du pilote de jobs Managed Service pour Apache Spark
Les tableaux suivants indiquent l'effet des différents paramètres de propriété sur la destination des résultats du pilote de jobs Managed Service pour Apache Spark.
dataproc: |
Sortie |
|---|---|
| false (valeur par défaut) |
|
| vrai |
|
Journaux du pilote Spark
Les tableaux suivants indiquent l'effet des différents paramètres de propriété sur la destination des journaux du pilote Spark.
spark: |
dataproc: |
dataproc: |
Résultats du pilote |
|---|---|---|---|
| client | false (valeur par défaut) | True ou False |
|
| client | vrai | True ou False |
|
| cluster | false (valeur par défaut) | faux |
|
| cluster | vrai | vrai |
|
Journaux de l'exécuteur Spark
Les tableaux suivants indiquent l'effet des différents paramètres de propriété sur la destination des journaux de l'exécuteur Spark.
dataproc: |
Journal de l'exécuteur |
|---|---|
| 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 jobs |
Jobs Spark envoyés sans utiliser l'API jobs Managed Service pour Apache Spark
Cette section indique l'effet des différents paramètres de propriété sur la destination des journaux de jobs Spark lorsque les jobs sont envoyés sans utiliser l'API jobs Managed Service pour Apache Spark, par exemple lors de l'envoi d'un job directement sur un nœud de cluster à l'aide de spark-submit ou lors de l'utilisation d'un notebook Jupyter ou Zeppelin. Ces jobs ne disposent pas d'ID ni de pilotes de jobs Managed Service pour Apache Spark.
Journaux du pilote Spark
Les tableaux suivants indiquent l'effet des différents paramètres de propriété sur la destination des journaux du pilote Spark pour les jobs qui ne sont pas envoyés via l'API jobs Managed Service pour Apache Spark.
spark: |
Résultats du pilote |
|---|---|
| client |
|
| cluster |
|
Journaux de l'exécuteur Spark
Lorsque les jobs Spark ne sont pas envoyés via l'API jobs Managed Service pour Apache Spark, les journaux de l'exécuteur se trouvent dans Logging : yarn-userlogs sous la ressource de cluster.
Afficher les résultats des jobs
Vous pouvez accéder aux résultats des jobs Managed Service pour Apache Spark dans la Google Cloud console, la gcloud CLI, Cloud Storage ou Logging.
Console
Pour afficher les résultats des jobs, accédez à la section Jobs Managed Service pour Apache Spark de votre projet, puis cliquez sur l'ID du job pour afficher les résultats.
Si le job est en cours d'exécution, les résultats sont actualisés périodiquement avec le nouveau contenu.
Commande gcloud
Lorsque vous envoyez un job à l'aide de la
commande gcloud dataproc jobs submit, les résultats du job s'affichent dans la console. Vous pouvez "rejoindre"
les résultats ultérieurement, sur un autre ordinateur ou dans
une nouvelle fenêtre en transmettant l'ID de votre job à la
commande gcloud dataproc jobs wait. L'ID de job 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 des jobs 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 de votre cluster. Dans Cloud Storage, un lien vers les résultats des jobs est fourni dans le Job.driverOutputResourceUri renvoyé par :
- une jobs.get requête d'API.
- une commande gcloud dataproc jobs describe job-id.
$ gcloud dataproc jobs describe spark-pi ... driverOutputResourceUri: gs://dataproc-nnn/jobs/spark-pi/driveroutput ...