Freigeben über


Was ist Apache Spark-Compute in Microsoft Fabric?

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

Microsoft Fabric Datentechnik- und Data Science-Umgebungen werden auf einer vollständig verwalteten Apache Spark-Computeplattform ausgeführt. Diese Plattform wurde entwickelt, um unvergleichliche Geschwindigkeit und Effizienz zu bieten. Mit Starterpools können Sie eine schnelle Initialisierung der Apache Spark-Sitzung erwarten, in der Regel innerhalb von 5 bis 10 Sekunden, und das ohne manuelle Einrichtung. Darüber hinaus erhalten Sie die Flexibilität, Apache Spark-Pools gemäß Ihren spezifischen Anforderungen an Datentechnik und Data Science anzupassen. Die Plattform ermöglicht eine optimierte und maßgeschneiderte Analyseerfahrung.

Abbildung einer Spark-Compute-Plattform mit Starterpools und benutzerdefinierten Spark-Pools.

Starterpools

Starterpools sind eine schnelle und einfache Möglichkeit, Spark innerhalb von Sekunden auf der Microsoft Fabric-Plattform zu verwenden. Sie können Spark-Sitzungen sofort verwenden, anstatt darauf zu warten, dass Spark die Knoten für Sie eingerichtet hat. Das hilft Ihnen, mehr mit Daten zu erledigen und schneller Erkenntnisse zu erhalten.

Abbildung einer Tabelle einer Starterpoolkonfiguration.

Starterpools verfügen über Apache Spark-Cluster, die immer aktiv und für Ihre Anforderungen bereit sind. Sie verwenden mittlere Knoten, die entsprechend den Anforderungen Ihres Spark-Auftrags dynamisch hochskaliert werden.

Abbildung des allgemeinen Konzepts von Starterpools.

Starterpools weisen außerdem Standardeinstellungen auf, mit denen Sie Bibliotheken schnell installieren können, ohne die Startzeit der Sitzung zu verlängern. Wenn Sie jedoch zusätzliche benutzerdefinierte Apache Spark-Eigenschaften oder -Bibliotheken aus Ihrem Arbeitsbereich oder Ihren Kapazitätseinstellungen verwenden möchten, kann es länger dauern, bis Spark die Knoten für Sie bereitstellt. Im Hinblick auf Abrechnung und Kapazitätsnutzung wird Ihnen der Kapazitätsverbrauch in Rechnung gestellt, wenn Sie mit der Ausführung Ihrer Notebook- oder Apache Spark-Auftragsdefinition beginnen. Leerlaufzeiten der Cluster im Pool werden Ihnen nicht in Rechnung gestellt.

Abbildung des allgemeinen Abrechnungsphasen für Starterpools.

Wenn beispielsweise ein Notebookauftrag an einen Starterpool übermittelt wird, wird Ihnen nur der Zeitraum in Rechnung gestellt, in dem die Notebooksitzung aktiv ist. Die abgerechnete Zeit schließt nicht die Leerlaufzeit oder die Zeit ein, die zum Personalisieren der Sitzung mit dem Spark-Kontext erforderlich ist.

Spark-Pools

Ein Spark-Pool ist eine Möglichkeit, Spark mitzuteilen, welche Art von Ressourcen Sie für Ihre Datenanalyseaufgaben benötigen. Sie können Ihrem Spark-Pool einen Namen geben und auswählen, wie viele und wie große Knoten (die Computer, die die Arbeit erledigen) Sie verwenden möchten. Sie können Spark außerdem mitteilen, wie die Anzahl der Knoten angepasst werden soll, je nachdem, wie viel Arbeit Sie haben. Das Erstellen eines Spark-Pools ist kostenlos. Sie zahlen nur, wenn Sie einen Spark-Auftrag im Pool ausführen, und dann richtet Spark die Knoten für Sie ein.

Wenn Sie Ihren Spark-Pool nach Ablauf Ihrer Sitzung 2 Minuten lang nicht verwenden, wird die Zuordnung Ihres Spark-Pools aufgehoben. Dieser Standardzeitraum für den Sitzungsablauf ist auf 20 Minuten festgelegt, und Sie können ihn bei Bedarf ändern. Wenn Sie Arbeitsbereichsadministrator sind, können Sie auch benutzerdefinierte Spark-Pools für Ihren Arbeitsbereich erstellen und sie als Standardoption für andere Benutzer festlegen. Auf diese Weise können Sie Zeit sparen und vermeiden, dass bei jeder Ausführung eines Notebook- oder Spark-Auftrags ein neuer Spark-Pool eingerichtet wird. Der Start benutzerdefinierter Spark-Pools dauert etwa drei Minuten, da Spark die Knoten aus Azure abrufen muss.

Sie können sogar Spark-Pools mit einem einzelnen Knoten erstellen, indem Sie die Mindestanzahl von Knoten auf 1 festlegen. In diesem Fall werden Treiber und Executor auf einem einzelnen Knoten ausgeführt, der wiederherstellbare Hochverfügbarkeit bietet und für kleine Workloads geeignet ist.

Die Größe und Anzahl der Knoten, die Sie in Ihrem benutzerdefinierten Spark-Pool betreiben können, hängt von Ihrer Microsoft Fabric-Kapazität ab. Die Kapazität ist ein Maß dafür, wie viel Rechenleistung Sie in Azure verwenden können. Sie können sich das etwa so vorstellen, dass zwei Apache Spark-VCores (eine Einheit der Rechenleistung für Spark) einer Kapazitätseinheit entsprechen. Beispielsweise verfügt eine Fabric-Kapazitäts-SKU F64 über 64 Kapazitätseinheiten, was 128 Spark-VCores entspricht. Sie können diese Spark-VCores verwenden, um Knoten unterschiedlicher Größe für Ihren benutzerdefinierten Spark-Pool zu erstellen, solange die Gesamtzahl der Spark-VCores 128 nicht überschreitet.

Die Abrechnung von Spark-Pools entspricht der von Starter-Pools, bei denen Sie nicht für die von Ihnen erstellten benutzerdefinierten Spark-Pools bezahlen, es sei denn, Sie haben eine aktive Spark-Sitzung erstellt, um eine Notebook- oder Spark-Auftragsdefinition auszuführen. Ihnen wird nur die Zeit in Rechnung gestellt, die Ihre Aufträge ausgeführt werden. Zeiten wie die Clustererstellung und die Belegungsfreigabe nach Abschluss des Auftrags werden nicht in Rechnung gestellt.

Abbildung des allgemeinen Abrechnungsphasen für benutzerdefinierte Pools.

Wenn Sie beispielsweise einen Notebookauftrag an einen benutzerdefinierten Spark-Pool übermitteln, wird Ihnen nur der Zeitraum in Rechnung gestellt, in dem die Sitzung aktiv ist. Die Abrechnung für diese Notebooksitzung endet, sowie die Spark-Sitzung beendet wird oder abgelaufen ist. Die Zeit zum Abrufen von Clusterinstanzen aus der Cloud oder die Zeit zum Initialisieren des Spark-Kontexts wird Ihnen nicht in Rechnung gestellt.

Mögliche Konfigurationen von benutzerdefinierten Pools für F64 basierend auf dem vorherigen Beispiel:

Fabric-Kapazitäts-SKU Kapazitätseinheiten Spark-VCores Knotengröße Maximale Knotenanzahl
F64 64 384 Klein 96
F64 64 384 Medium 48
F64 64 384 Large 24
F64 64 384 XL 12
F64 64 384 XX-Large 6

Hinweis

Zum Erstellen benutzerdefinierter Pools benötigen Sie Administratorberechtigungen für den Arbeitsbereich. Außerdem muss der Microsoft Fabric-Kapazitätsadministrator Berechtigungen erteilen, damit Arbeitsbereichsadministratoren die Größe ihrer benutzerdefinierten Spark-Pools anpassen können. Weitere Informationen finden Sie unter Erste Schritte mit benutzerdefinierten Spark-Pools in Fabric.

Knoten

Eine Instanz eines Apache Spark-Pools besteht aus einem Hauptknoten und Workerknoten, zum Beginn mit mindestens einem Knoten in einer Spark-Instanz. Der Hauptknoten führt zusätzliche Verwaltungsdienste wie Livy, YARN Resource Manager, Zookeeper und den Apache Spark-Treiber aus. Auf allen Knoten werden Dienste wie Node Agent und YARN Node Manager ausgeführt. Auf allen Workerknoten wird der Apache Spark Executor-Dienst ausgeführt.

Knotengrößen

Ein Spark-Pool kann mit Knotengrößen definiert werden, die von einem Serverknoten der Größe „Small“ (mit 4 virtuellen Kernen und 28 GB Arbeitsspeicher) bis hin zu einem Serverknoten der Größe „Large“ (mit 64 virtuellen Kernen und 400 GB Arbeitsspeicher pro Knoten) reichen. Die Knotengrößen können nach der Poolerstellung geändert werden. Dabei muss die aktive Sitzung jedoch neu gestartet werden.

Size Virtueller Kern Arbeitsspeicher
Klein 4 32 GB
Medium 8 64 GB
Groß 16 128 GB
XL 32 256 GB
XX-Large 64 512 GB

Autoscale

Mit der Autoskalierung für Apache Spark-Pools können Sie Computeressourcen basierend auf dem Aktivitätsumfang automatisch hoch- bzw. herunterskalieren. Wenn das Feature für die Autoskalierung aktiviert ist, legen Sie die minimale und die maximale Anzahl der zu skalierenden Knoten fest. Wenn Sie das Feature zur Autoskalierung deaktivieren, bleibt die Anzahl der festgelegten Knoten unverändert. Sie können diese Einstellung nach der Poolerstellung ändern, Sie müssen die Instanz jedoch möglicherweise neu starten.

Hinweis

Standardmäßig ist spark.yarn.executor.decommission.enabled auf „true“ festgelegt. Dies ermöglicht das automatische Herunterfahren von nicht genutzten Nodes, um die Computereffizienz zu optimieren. Wenn eine weniger aggressive Herunterskalierung bevorzugt wird, kann diese Konfiguration auf „false“ festgelegt werden.

Dynamische Zuteilung

Die dynamische Zuordnung ermöglicht es der Apache Spark-Anwendung, mehr Executors anzufordern, wenn die Aufgaben die Last überschreiten, die von den aktuellen Executors verarbeitet werden kann. Außerdem werden die Executors freigegeben, wenn die Aufträge abgeschlossen sind und die Spark-Anwendung in den Leerlaufzustand wechselt. Unternehmensbenutzer*innen fällt es oftmals schwer, die Executorkonfigurationen zu optimieren, da diese sich in den verschiedenen Phasen eines Spark-Auftragsausführungsprozesses erheblich unterscheiden. Diese Konfigurationen hängen zudem von der Menge der verarbeiteten Daten ab, die sich von Zeit zu Zeit ändert. Sie können die Option für die dynamische Zuordnung von Executors als Teil der Poolkonfiguration aktivieren. Dies ermöglicht die automatische Zuordnung von Executors zur Spark-Anwendung auf der Grundlage der im Spark-Pool verfügbaren Knoten.

Wenn Sie die dynamische Zuordnungsoption für jede übermittelte Spark-Anwendung aktivieren, reserviert das System Executors während des Schritts zur Auftragsübermittlung basierend auf den minimalen Knoten. Sie geben die maximale Anzahl von Knoten an, um Szenarien mit automatischer Skalierung erfolgreich zu unterstützen.