Freigeben über


Parallelitätsgrenzwerte und Warteschlangen in Apache Spark für Microsoft Fabric

Gilt für:✅ Datentechnik und Data Science in Microsoft Fabric

Microsoft Fabric ermöglicht die Zuordnung von Compute-Einheiten über Kapazität. Dabei handelt es sich um dedizierte Ressourcen, die zu einem bestimmten Zeitpunkt zur Verwendung verfügbar sind. Kapazität definiert, ob es einer Ressource möglich ist, eine Aktivität auszuführen oder eine Ausgabe zu erzeugen. Verschiedene Elemente verbrauchen zu einem bestimmten Zeitpunkt unterschiedliche Kapazitäten. Microsoft Fabric stellt Kapazität über die Fabric-SKUs und Testversionen bereit. Weitere Informationen finden Sie unter Was bedeutet Kapazität?.

Wenn Benutzer*innen eine Microsoft Fabric-Kapazität in Azure erstellen, können sie eine Kapazitätsgröße basierend auf der Größe ihrer Analyseworkloads auswählen. In Apache Spark haben Benutzer*innen zwei virtuelle Apache Spark-Kerne für jede Kapazitätseinheit, die sie im Rahmen ihrer SKU reservieren.

Eine Kapazitätseinheit = zwei virtuelle Spark-Kerne

Nachdem die Kapazität erworben wurde, können Administrator*innen Arbeitsbereiche innerhalb der Kapazität in Microsoft Fabric erstellen. Die der Kapazität zugeordneten virtuellen Spark-Kerne werden für alle Apache Spark-basierten Elemente gemeinsam genutzt, z. B. Notebooks, Apache Spark-Auftragsdefinitionen und in diesen Arbeitsbereichen erstellte Lakehouses.

Parallelitätsdrosselung und Warteschlangen

Apache Spark für Fabric erzwingt einen kernbasierten Einschränkungs- und Warteschlangenmechanismus, bei dem Benutzer*innen Aufträge basierend auf den erworbenen Fabric-Kapazitäts-SKUs übermitteln dürfen. Der Warteschlangenmechanismus ist eine einfache FIFO-basierte Warteschlange, die nach verfügbaren Auftragsslots sucht und die Aufträge automatisch wiederholt, sobald die Kapazität verfügbar ist. Wenn Benutzer Notebook- oder Lakehouse-Aufträge, z. B. „Load to Table“, übermitteln und deren Kapazität aufgrund parallel ausgeführter Aufträge, die alle Spark VCores, die für ihre erworbenen Fabric-Kapazitäts-SKU verfügbar sind, benutzen, maximal ausgelastet ist, werden sie mit der folgenden Meldung gedrosselt:

HTTP-Antwortcode 430: Dieser Spark-Auftrag kann nicht ausgeführt werden, weil Sie eine Spark-Berechnungs- oder API-Ratengrenze erreicht haben. Um diesen Spark-Auftrag auszuführen, brechen Sie einen aktiven Spark-Auftrag über den Monitoring Hub ab, wählen Sie eine SKU mit größerer Kapazität oder versuchen Sie es später erneut.

Wenn die Warteschlangenfunktion aktiviert ist, werden Notebook-Jobs, die von Pipelines, Job Scheduler und Spark-Job-Definitionen ausgelöst werden, der Warteschlange hinzugefügt und automatisch erneut ausgeführt, wenn die Kapazität frei wird. Der Ablauf der Warteschlange wird auf 24 Stunden ab der Übermittlungszeit des Auftrags festgelegt. Nach diesem Zeitraum müssen die Aufträge erneut übermittelt werden.

Fabric-Kapazitäten werden mit Bursting aktiviert, wodurch Sie zusätzliche Computekerne nutzen können, die über die erworbenen Funktionen hinausgehen, um die Ausführung einer Workload zu beschleunigen. Bei Apache Spark-Workloads können Benutzer*innen mit Bursting Aufträge mit insgesamt der dreifachen Menge der gekauften virtuellen Spark-Kerne übermitteln.

Hinweis

Der Burstfaktor erhöht nur die Gesamtanzahl der virtuellen Spark-Kerne, um die Parallelität zu unterstützen, erhöht aber nicht die maximalen Kerne pro Auftrag. Benutzer*innen können keinen Auftrag übermitteln, der mehr Kerne erfordert als die Fabric-Kapazität zulässt.

Im folgenden Abschnitt werden verschiedene kernbasierte Grenzwerte für Spark-Workloads aufgeführt, die auf Microsoft Fabric-Kapazitäts-SKUs basieren:

Fabric-Kapazitäts-SKU Entsprechende Power BI-SKU Spark-VCores Max Spark VCores mit Burstfaktor Warteschlangenlimit
F2 - 4 20 4
F4 - 8 24 4
F8 - 16 48 8
F16 - 32 96 16
F32 - 64 192 32
F64 P1 128 384 64
F128 P2 256 768 128
F256 P3 512 1536 256
F512 P4 1024 3072 512
F1024 - 2048 6144 1024
F2048 - 4096 12288 2048
Testkapazität P1 128 128 Nicht verfügbar

Beispielberechnung: SKU „F64” bietet 128 Spark-VCores. Der für eine F64-SKU angewendete Burstfaktor ist 3, was insgesamt 384 Spark Vcores macht. Der Burstfaktor wird nur zur Parallelität angewendet und erhöht nicht die maximalen Kerne, die für einen einzelnen Spark-Auftrag verfügbar sind. Dies bedeutet, dass ein einzelnes Notebook oder eine Spark-Auftragsdefinition oder ein Lakehouse-Auftrag eine Poolkonfiguration von max. 128 virtuellen Kernen und 3 Aufträgen mit derselben Konfiguration gleichzeitig ausführen kann. Wenn Notebooks eine kleinere Computekonfiguration verwenden, können sie gleichzeitig ausgeführt werden, bis die maximale Auslastung den Grenzwert von 384 SparkVcore erreicht.

Hinweis

Die Aufträge haben einen Warteschlangenablaufzeitraum von 24 Stunden, nach dem sie abgebrochen werden und Benutzer*innen sie erneut zur Auftragsausführung übermitteln müssen.

Die Spark für Fabric-Drosselung weist keine auftragsbasierten Grenzwerte auf, die erzwungen und willkürlich sind, und die Drosselung basiert nur auf der Anzahl der Kerne, die für die erworbene Fabric-Kapazitäts-SKU zulässig sind. Die Auftragszulassung ist standardmäßig eine optimistische Zugangssteuerung, bei der die Arbeitsplätze basierend auf ihren Mindestkernanforderungen zugelassen werden. Weitere Informationen über die optimistische Auftragszulassung Auftragszulassung und -verwaltung. Wenn die Standardpooloption (Startpool) für den Arbeitsbereich ausgewählt ist, werden in der folgenden Tabelle die maximalen Grenzwerte für den Parallelitätsauftrag aufgelistet.

Weitere Informationen zu den Standardkonfigurationen für Starterpools basierend auf der Fabric-Kapazitäts-SKU erhalten Sie unter Konfigurieren von Starterpools.

Bursting auf Auftragsebene

Admins können ihre Apache Spark-Pools so konfigurieren, dass die maximale Anzahl an verfügbaren Spark-Kernen mit Burst-Faktor für die gesamte Kapazität genutzt wird. Beispielsweise kann ein Arbeitsbereichs-Admin, dessen Arbeitsbereich an eine F64-Fabric-Kapazität angeschlossen ist, seinen Spark-Pool (Starterpool oder benutzerdefinierter Pool) jetzt auf 384 Spark-VCores konfigurieren, wobei die Höchstzahl an Knoten von Starterpools auf 48 eingestellt werden kann. Alternativ können Admins einen Pool der Knotengröße XX Large mit maximal 6 Knoten einrichten.