Diagnostic d'un long Job dans Spark
Lorsqu’un Job domine la durée d’exécution d’une charge de travail, ce temps est généralement concentré dans une ou plusieurs phases de ce Job. La recherche de la phase la plus longue et la lecture de son nombre d’E/S et de tâches permet de limiter le problème à une cause spécifique telle qu’un spill, une asymétrie, des E/S élevées ou un parallélisme trop faible.
Utilisez cette page après que la chronologie des jobs montre un ou plusieurs jobs longs, ou après avoir trié les jobs par durée et ouvert le plus long. Si la chronologie montre un modèle différent, voir la page de ce modèle :
Trouver l'étape la plus longue
Start par identifier l'étape la plus longue du Job. Faites défiler jusqu'à la liste des étapes en bas de la page du job et triez-les par durée :

Détails des E/S de la phase
Examinez les données E/S de haut niveau pour cette étape en utilisant les colonnes Entrée , Sortie , Lecture aléatoire et Écriture aléatoire :

Chaque colonne affiche :
- Entrée : quantité de données lues par cette étape depuis le stockage, par exemple depuis Delta Lake, Parquet ou des fichiers CSV.
- Sortie : volume de données écrit par cette étape vers le stockage, par exemple des fichiers Delta Lake, Parquet ou CSV.
- Lecture aléatoire : Quantité de données de lecture aléatoire lues par cette étape.
- Écriture aléatoire : quantité de données de brassage écrites par cette étape.
Notez ces chiffres pour les étapes ultérieures.
Nombre de tâches
Le nombre de tâches dans la longue étape peut aider à identifier la cause. La capture d'écran suivante montre où trouver le nombre de tâches :

Dans le cas d'une tâche unique, l'étape est exécutée sans parallélisme. Un seul cœur fait donc le travail tandis que le reste du cluster attend. Si l'étape comporte une seule tâche, voir Longue étape Spark avec une seule tâche.
Afficher plus de détails sur l'étape
Si l’étape comporte plus d’une tâche, approfondissez l’examen. Cliquez sur le Link dans la description de l’étape pour afficher les détails sur l’étape la plus longue :

Ensuite, consultez Skew and spill.