Lorsque vous envoyez un job Managed Service pour Apache Spark, Managed Service pour Apache Spark collecte automatiquement les résultats du job et les 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 du job, tandis que les journaux de l'exécuteur Spark contiennent les résultats de l'exécutable ou du lanceur du job, tels qu'un message spark-submit "Submitted application ... " (Application envoyée...). 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 | False | 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 job. 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 | False | Doit être défini lors de la création du cluster.
Lorsque la valeur est true, les journaux des conteneurs YARN du job sont associés
à la ressource de job. Lorsque la valeur est false, les journaux des conteneurs YARN du job
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 de 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 jobs de Managed Service pour Apache Spark, qui inclut l'envoi de jobs via la
Google Cloud console, 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 de 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) |
|
| true |
|
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 | true | True ou False |
|
| cluster | false (valeur par défaut) | False |
|
| cluster | true | True |
|
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 |
| true | Dans Logging : dataproc.job.yarn.container sous la ressource de job |
Jobs Spark envoyés sans utiliser l'API jobs de 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 de 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 de 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 de 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 du job
Vous pouvez accéder aux résultats des jobs Managed Service pour Apache Spark dans la Google Cloud console, gcloud CLI, Cloud Storage ou Logging.
Console
Pour afficher les résultats du job, 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 du job.
Si le job est en cours d'exécution, les résultats du job sont actualisés périodiquement avec 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
Dans Cloud Storage, les résultats des jobs sont stockés dans soit le bucket de préproduction soit le bucket spécifié lors de la création du 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 ...