Freigeben über


Hohe E/A einer Spark-Phase

Sehen Sie sich als Nächstes die E/A-Statistiken der längsten Phase erneut an:

E/A mit langer Phase

Was ist eine hohe E/A?

Wie viele Daten müssen in einer E/A-Spalte als hoch angesehen werden? Um dies zu ermitteln, beginnen Sie zuerst mit der höchsten Zahl in einer der angegebenen Spalten. Berücksichtigen Sie dann die Gesamtanzahl der CPU-Kerne, die Sie in allen unseren Workern haben. Im Allgemeinen kann jeder Kern etwa 3 MB pro Sekunde lesen und schreiben.

Dividieren Sie die größte E/A-Spalte durch die Anzahl der Clusterworkerkerne, und dividieren Sie diese dann nach der Dauer in Sekunden. Wenn das Ergebnis etwa 3 MB beträgt, liegt wahrscheinlich eine E/A-Bindung vor. Das wäre eine hohe E/A.

Hohe Eingabe

Wenn viel Eingabe in Ihrer Phase vorherrscht, bedeutet das, dass viel Zeit beim Lesen von Daten beansprucht wird. Identifizieren Sie zunächst, welche Daten diese Phase liest. Weitere Informationen finden Sie unter Identifizieren von teuren Lesevorgängen im DAG von Spark.

Nachdem Sie die spezifischen Daten identifiziert haben, finden Sie hier einige Ansätze zum Beschleunigen Ihrer Lesevorgänge:

  • Verwenden von Delta
  • Probieren Sie Photon aus. Diese Engine hilft Ihnen bei der Lesegeschwindigkeit, besonders bei breiten Tabellen.
  • Gestalten Sie Ihre Abfrage selektiver, sodass nicht so viele Daten gelesen werden müssen.
  • Überdenken Sie Ihr Datenlayout, damit das Überspringen von Daten effektiver wird.
  • Wenn Sie dieselben Daten mehrmals lesen, verwenden Sie den Delta-Cache.
  • Wenn Sie einen Join durchführen, sollten Sie versuchen, DFP zu verwenden.

Hohe Ausgabe

Wenn in Ihrer Phase viel Ausgabe angezeigt wird, bedeutet dies, dass Sie viel Zeit mit dem Schreiben von Daten verbringen. Hier sind einige Ansätze zur Lösung:

  • Schreiben Sie viele Daten neu? Unter Bestimmen, ob Spark Daten umschreibt können Sie dies überprüfen. Wenn Sie viele Daten neu schreiben:
  • Aktivieren Sie Photon, wenn diese Engine noch nicht vorhanden ist. Photon kann Ihnen mit der Schreibgeschwindigkeit helfen.

Hoher Shuffle

Wenn Sie mit Shuffle nicht vertraut sind, sollten Sie dieses Prinzip lernen.

Keine hohe E/A

Wenn in keiner der Spalten hohe E/A-Werte angezeigt werden, müssen Sie weitersuchen. Sehen Sie sich Verlangsamen der Spark-Phase mit wenig E/A an.