Kapitel 19. Leistungsoptimierung
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Kapitel 18 behandelte die Spark-Benutzeroberfläche (UI) und grundlegende Erste-Hilfe-Maßnahmen für deine Spark-Anwendung. Mit den in diesem Kapitel vorgestellten Werkzeugen solltest du sicherstellen können, dass deine Aufträge zuverlässig ausgeführt werden. Manchmal musst du sie aber auch aus verschiedenen Gründen schneller oder effizienter ausführen. Genau darum geht es in diesem Kapitel. Hier stellen wir dir einige der Möglichkeiten vor, wie du deine Aufträge schneller ausführen kannst.
Genau wie bei der Überwachung gibt es eine Reihe von verschiedenen Ebenen, die du optimieren kannst. Wenn du zum Beispiel ein extrem schnelles Netzwerk hättest, würden viele deiner Spark-Aufträge schneller werden, weil Shuffles oft einer der kostspieligsten Schritte in einem Spark-Auftrag sind. Höchstwahrscheinlich hast du nicht viele Möglichkeiten, solche Dinge zu steuern. Deshalb werden wir die Dinge besprechen, die du durch Codeauswahl oder Konfiguration steuern kannst.
Es gibt eine Vielzahl von verschiedenen Bereichen der Spark-Aufträge, die du optimieren möchtest. Im Folgenden sind einige der Bereiche aufgeführt:
-
Designentscheidungen auf Code-Ebene (z.B. RDDs versus Datenrahmen)
-
Daten im Ruhezustand
-
Tritt bei
-
Aggregationen
-
Daten im Flug
-
Individuelle Anwendungseigenschaften
-
Innerhalb der Java Virtual Machine (JVM) ...