Anhang A. Tuning, Debugging und andere Dinge, von denen Entwickler gerne behaupten, dass es sie nicht gibt
Spark Tuning und Cluster Sizing
Aus unserer Diskussion über die Interna von Spark in Kapitel 2wissen wir, dass die SparkSession oder SparkContext die Spark-Konfiguration enthält, die angibt, wie eine Anwendung gestartet wird. Die meisten Spark-Einstellungen können nur auf der Ebene der Anwendung angepasst werden. Diese Konfigurationen können einen großen Einfluss auf die Geschwindigkeit eines Auftrags und die Chance, ihn abzuschließen, haben. Die Standardeinstellungen von Spark sollen sicherstellen, dass Aufträge auf sehr kleinen Clustern ausgeführt werden können, und werden für die Produktion nicht empfohlen.
In den meisten Fällen müssen diese Einstellungen geändert werden, um die verfügbaren Ressourcen zu nutzen und um den Auftrag überhaupt ausführen zu können. Spark bietet eine recht begrenzte Kontrolle darüber, wie unsere Umgebung konfiguriert ist, und wir können die Leistung eines Auftrags bei der Skalierung oft verbessern, indem wir diese Einstellungen anpassen. In Kapitel 6 haben wir zum Beispiel erklärt, dass eine häufige Ursache für das Scheitern von Spark-Aufträgen darin besteht, dass der Arbeitsspeicher der Executoren nicht ausreicht. Während es am besten ist, sich auf die in den vorangegangenen Kapiteln vorgestellten Techniken zu konzentrieren, um Datenschiefstände und teure Shuffles zu vermeiden, kann die Verwendung von weniger und größeren Executors ebenfalls ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access