Freigeben über


Spark-Treiber überladen

Sie haben festgestellt, dass Ihr Treiber überladen ist. Der häufigste Grund dafür ist, dass zu viele gleichzeitige Vorgänge auf dem Cluster ausgeführt werden. Dabei kann es sich um zu viele Datenströme, Abfragen oder Spark-Aufträge handeln (einige Kunden verwenden Threads, um viele Spark-Aufträge gleichzeitig auszuführen).

Es kann auch sein, dass Sie Nicht-Spark-Code auf Ihrem Cluster ausführen, der den Treiber ausgelastet hält. Wenn Lücken auf der Zeitskala auf die Ausführung von Spark-fremdem Code zurückzuführen sind, bedeutet das, dass sich alle Ihre Worker im Leerlauf befinden und Ihnen während der Lücken wahrscheinlich unnötige Kosten entstehen. Vielleicht ist dies beabsichtigt und unvermeidbar, aber wenn Sie den Code so schreiben können, dass Spark verwendet wird, können Sie den Cluster optimal nutzen. Informationen zur Arbeit mit Spark finden Sie in diesem Tutorial.

Wenn zu viele Vorgänge gleichzeitig auf dem Cluster ausgeführt werden, haben Sie drei Optionen:

  • Treibergröße erhöhen
  • Parallelität reduzieren
  • Last über mehrere Cluster verteilen

Azure Databricks empfiehlt, zuerst die Größe des Treibers zu verdoppeln und zu sehen, wie sich dies auf Ihren Auftrag auswirkt.