Comment puis-je résoudre les problèmes d'échec ou de blocage d'une requête Spark SQL dans Amazon EMR ?

Lecture de 3 minute(s)
0

Je souhaite collecter des informations pour résoudre les problèmes de mes requêtes Spark SQL dans Amazon EMR.

Résolution

Les requêtes Spark SQL terminées se trouvent dans l'onglet Interfaces utilisateur des applications du serveur d'historique Spark de votre cluster EMR. Pour en savoir plus, reportez-vous à Afficher les interfaces utilisateur permanentes des applications.

Pour accéder aux requêtes Spark SQL terminées, procédez comme suit :

  1. Sur le serveur d'historique Spark, sélectionnez SQL/DataFrame pour afficher les requêtes Spark SQL terminées.
  2. Sélectionnez les ID d'application de tâche Spark SQL de la requête pour ouvrir les informations relatives à l'ID de tâche terminé dans l'onglet Tâches. Veuillez noter qu'une requête SQL peut avoir plusieurs ID de tâche.

Les informations suivantes sont disponibles dans l'onglet Tâches :

  • Dans l'onglet Tâches, l'état de la tâche, sa durée et la requête SQL associée apparaîtront.
  • Dans l'onglet Tâches, la chronologie de l'ID de l'application est disponible. Ce paramètre affiche l'ajout et la suppression des exécuteurs Spark par ordre chronologique.
  • Faites défiler la page vers le bas pour afficher le DAG (graphe orienté acyclique). Le DAG est une visualisation de la requête Spark SQL. La chaîne des dépendances RDD est également disponible.
  • Faites encore défiler la page vers le bas pour afficher les étapes terminées de la tâche Spark SQL.
  • Sélectionnez la description de l'ID d'étape pour afficher la durée totale de la requête pour toutes les tâches, un résumé au niveau de la localité et l'ID de tâche associé. La vue Étapes fournit des informations sur toutes les RDD correspondant à cette étape. Cette vue fournit également des informations sur l'opération RDD de niveau inférieur liée à l'opération Spark SQL de niveau supérieur.
  • Développez Métrique agrégée par exécuteur pour afficher le journal des Exécuteurs. Le journal des exécuteurs fournit des informations supplémentaires sur la tâche Spark SQL.

Vous trouverez ci-dessous un exemple de journal :

23/01/17 18:10:17 INFO Executor: Finished task 0.0 in stage 16.0 (TID 16). 1882 bytes result sent to driver
23/01/17 18:10:17 INFO YarnCoarseGrainedExecutorBackend: Got assigned task 17
23/01/17 18:10:17 INFO Executor: Running task 0.0 in stage 17.0 (TID 17)
23/01/17 18:10:17 INFO TorrentBroadcast: Started reading broadcast variable 17 with 1 pieces (estimated total size 4.0 MiB)
23/01/17 18:10:17 INFO MemoryStore: Block broadcast_17_piece0 stored as bytes in memory (estimated size 7.2 KiB, free 4.8 GiB)
23/01/17 18:10:17 INFO TorrentBroadcast: Reading broadcast variable 17 took 8 ms
23/01/17 18:10:17 INFO MemoryStore: Block broadcast_17 stored as values in memory (estimated size 13.8 KiB, free 4.8 GiB)
23/01/17 18:10:17 INFO PythonRunner: Times: total = 52, boot = -31, init = 83, finish = 0
23/01/17 18:10:17 INFO Executor: Finished task 0.0 in stage 17.0 (TID 17). 1883 bytes result sent to driver
23/01/17 18:11:20 ERROR CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM
23/01/17 18:11:20 INFO MemoryStore: MemoryStore cleared
23/01/17 18:11:20 INFO BlockManager: BlockManager stopped
23/01/17 18:11:20 INFO ShutdownHookManager: Shutdown hook called

Pour des informations détaillées, reportez-vous à l'onglet Tâches dans la section Interface utilisateur Web de la documentation d'Apache Spark.

Informations connexes

Examiner les fichiers journaux

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an