Diagnostizieren von Kosten- und Leistungsproblemen mithilfe der Spark-Benutzeroberfläche

Wenn eine Pipeline oder Abfrage länger dauert oder mehr kostet als erwartet, ist die Ursache oft allein am Code schwer zu erkennen. Die Spark UI zeigt, was der Cluster tatsächlich gemacht hat: welche Jobs ausgeführt wurden, wie lange jede Stage dauerte, wie viel Datenvolumen verschoben wurde und wo Tasks fehlschlugen. Dieser Leitfaden beschreibt Muster in der Spark-Benutzeroberfläche und erklärt, welche Seite für jedes Muster als nächstes gelesen werden soll. Wenn Sie mit den Konzepten driver, workers, executors, Stages und Aufgaben nicht vertraut sind, überprüfen Sie die Spark-Architektur, bevor Sie beginnen.

Wann sie dieses Handbuch verwenden?

Verwenden Sie diesen Leitfaden, wenn eine Arbeitslast, die auf einem Cluster läuft, eines dieser Symptome aufweist:

  • Ein Job, eine Pipeline oder eine Abfrage dauert länger als erwartet oder länger als früher.
  • Der Workload ist teurer als erwartet für die verarbeitete Datenmenge.
  • Jobs oder Executors schlagen fehl, und die Fehlermeldung identifiziert die Ursache nicht.

Verwenden dieses Handbuchs

Beginnen Sie mit der Auftragszeitachse. Die Zeitleiste zeigt die Gesamtform der Auslastung, und jedes Muster verlinkt auf die Seite, die dieses Muster beschreibt. Folgen Sie den Links am Ende jeder Seite, um durch den Leitfaden zu blättern. Um einen langsamen Workload zu diagnostizieren, folgen Sie diesen Schritten der Reihe nach:

  1. Verwenden der Zeitachse „Aufträge“ zum Identifizieren wichtiger Probleme
  2. Sehen Sie sich die längste Phase an
  3. Suche nach Schiefe oder Überlauf
  4. Ermitteln, ob die längste Phase E/A-gebunden ist
  5. Suchen nach anderen Ursachen für langsame Phasenlaufzeit

Wenn die Job-Zeitleiste fehlgeschlagene Jobs, lange Lücken zwischen den Jobs oder viele kleine Jobs zeigt, überspringe die restlichen Schritte und folge dem Link auf der Zeitleistenseite zur Seite für dieses Muster.

So öffnen Sie die Spark-Benutzeroberfläche

  1. Navigieren Sie zur Seite Ihres Clusters:

    Navigation zu „Compute“

  2. Klicken Sie auf Spark UI:

    Gehe zu SparkUI

Nächster Schritt

Als Nächstes sehen Sie sich die Ereigniszeitleiste an, um mehr über Ihre Pipeline oder Abfrage zu erfahren. Weitere Informationen finden Sie in der Zeitachse „Aufträge“.