Verwenden von Schedulerpools für mehrere Streamingworkloads
Damit mehrere Streamingabfragen Aufträge gleichzeitig auf einem gemeinsam genutzten Cluster ausführen können, können Sie Abfragen so konfigurieren, dass sie in separaten Schedulerpools ausgeführt werden.
Wie funktionieren Schedulerpools?
Standardmäßig werden alle in einem Notebook gestarteten Abfragen im gleichen Fair-Planungspool ausgeführt. Aufträge, die durch Trigger von allen Streamingabfragen in einem Notebook generiert werden, werden nacheinander in FIFO-Reihenfolge (First In, First Out) ausgeführt. Dies kann zu unnötigen Verzögerungen bei den Abfragen führen, da die Clusterressourcen nicht effizient gemeinsam genutzt werden.
Mit Scheduler-Pools können Sie deklarieren, welche strukturierten Streaming-Abfragen Computeressourcen gemeinsam nutzen.
Das folgende Beispiel weist query1
einem dedizierten Pool zu, während query2
und query3
sich einen Schedulerpool teilen.
# Run streaming query1 in scheduler pool1
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool1")
df.writeStream.queryName("query1").format("delta").start(path1)
# Run streaming query2 in scheduler pool2
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool2")
df.writeStream.queryName("query2").format("delta").start(path2)
# Run streaming query3 in scheduler pool2
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool2")
df.writeStream.queryName("query3").format("delta").start(path3)
Hinweis
Die Konfiguration der lokalen Eigenschaft muss sich in derselben Notebookzelle befinden, in der Sie die Streamingabfrage starten.
Weitere Informationen finden Sie in der Dokumentation zu Apache Fair Scheduler.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für