Teilen über


Optimieren der Clusternutzung von Lakeflow Spark Declarative Pipelines mit automatischer Skalierung

In diesem Artikel wird erläutert, wie Sie die erweiterte automatische Skalierung verwenden, um Ihre Pipelines in Azure Databricks zu optimieren.

Die erweiterte automatische Skalierung ist für alle neuen Pipelines standardmäßig aktiviert. Serverlose Pipelines verwenden auch vertikale automatische Skalierung. Sehen Sie sich an, was die vertikale automatische Skalierung ist?.

Bei serverlosen Pipelines ist die erweiterte automatische Skalierung immer aktiviert und kann nicht deaktiviert werden. Siehe Konfigurieren einer serverlosen Pipeline.

Was ist die verbesserte automatische Skalierung?

Databricks verbesserte Autoskalierung optimiert die Clusterauslastung, indem Clusterressourcen basierend auf dem Arbeitslastvolumen automatisch zugeordnet werden, wobei die Datenverarbeitungslatenz Ihrer Pipelines nur minimal beeinträchtigt wird.

Die verbesserte automatische Skalierung erweitert die Cluster-Autoskalierungsfunktionen von Azure Databricks mit den folgenden Funktionen:

  • Durch die erweiterte automatische Skalierung werden Optimierungen von Streamingworkloads implementiert und Verbesserungen zur Verbesserung der Leistung von Batchworkloads hinzugefügt. Durch verbesserte automatische Skalierung werden die Kosten optimiert, indem Computer hinzugefügt oder entfernt werden, wenn sich die Arbeitsauslastung ändert.
  • Verbessertes Autocaling beendet proaktiv unter genutzte Knoten, während sichergestellt wird, dass während des Herunterfahrens keine fehlgeschlagenen Vorgänge vorhanden sind. Die vorhandene automatische Clusterfunktion skaliert Knoten nur dann nach unten, wenn der Knoten im Leerlauf ist.

Die erweiterte automatische Skalierung ist der Standardmodus für die automatische Skalierung, wenn Sie eine neue Pipeline in der Pipeline-Benutzeroberfläche erstellen. Sie können die erweiterte automatische Skalierung für vorhandene Pipelines aktivieren, indem Sie die Pipelineeinstellungen auf der Benutzeroberfläche bearbeiten. Sie können die erweiterte automatische Skalierung auch aktivieren, wenn Sie Pipelines mit der REST-API der Pipelines erstellen oder bearbeiten.

Welche Metriken verwendet die erweiterte automatische Skalierung, um Entscheidungen zum Hoch- oder Herunterskalieren zu treffen?

Bei der erweiterten automatischen Skalierung werden zwei Metriken verwendet, um die Skalierung nach oben oder nach unten zu entscheiden:

  • Auslastung des Vorgangsplatzes: Dies ist das durchschnittliche Verhältnis der Anzahl der besetzten Vorgangsplätze zu den gesamt im Cluster verfügbaren Vorgangsplätze.
  • Größe der Vorgangswarteschlange: Dies ist die Anzahl der Aufgaben, die auf die Ausführung in Aufgabenfenstern warten.

Aktivieren der erweiterten automatischen Skalierung für eine Pipeline

Die erweiterte automatische Skalierung ist der Standardmodus für die automatische Skalierung, wenn Sie eine neue Pipeline in der Pipeline-Benutzeroberfläche erstellen. Sie können die erweiterte automatische Skalierung für vorhandene Pipelines aktivieren, indem Sie die Pipelineeinstellungen auf der Benutzeroberfläche bearbeiten. Sie können auch die erweiterte automatische Skalierung aktivieren, wenn Sie eine Pipeline mit dem Lakeflow-Pipelines-Editor bearbeiten.

Führen Sie eine der folgenden Aktionen aus, um die erweiterte automatische Skalierung zu verwenden:

  • Legen Sie den Clustermodus beim Bearbeiten von Pipelineeinstellungen im Lakeflow-Pipelines-Editor auf erweiterte automatische Skalierung fest.
  • Fügen Sie der Pipelineclusterkonfiguration die autoscale Einstellung hinzu, und legen Sie das mode Feld auf ENHANCED. Siehe Konfigurieren der klassischen Berechnung für Pipelines.

Verwenden Sie die folgenden Richtlinien beim Konfigurieren der erweiterten automatischen Skalierung für Produktionspipelines:

  • Lassen Sie die Min workers Einstellung auf der Standardeinstellung.
  • Legen Sie die Max workers Einstellung auf einen Wert fest, der auf dem Budget und der Pipelinepriorität basiert.

Im folgenden Beispiel wird ein erweiterter Automatischer Skalierungscluster mit mindestens 5 Mitarbeitern und maximal 10 Mitarbeitern konfiguriert. max_workers muss größer oder gleich min_workerssein.

Hinweis

  • Erweiterte automatische Skalierung ist nur für updates Cluster verfügbar. Für maintenance-Cluster wird die automatische Skalierung (Legacy) verwendet.
  • Die autoscale Konfiguration verfügt über zwei Modi:
{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

Wenn die Pipeline für die kontinuierliche Ausführung konfiguriert ist, wird sie automatisch neu gestartet, nachdem sich die automatische Skalierungskonfiguration geändert hat. Erwarten Sie nach dem Neustart einen kurzen Zeitraum mit erhöhter Latenz. Nach diesem kurzen Zeitraum mit erhöhter Latenz sollte die Clustergröße basierend auf Ihrer autoscale Konfiguration aktualisiert werden, und die Pipelinelatenz sollte zu den vorherigen Latenzmerkmalen zurückkehren.

Begrenzen der Kosten für Pipelines, die eine erweiterte automatische Skalierung verwenden

Hinweis

Sie können keine Worker für serverlose Pipelines konfigurieren.

Durch Festlegen des Parameters "Max Worker " im Bereich " Berechnen " der Pipelines wird eine obergrenze für die automatische Skalierung festgelegt. Die Verringerung der Anzahl verfügbarer Mitarbeiter kann die Latenz für einige Workloads erhöhen, verhindert jedoch, dass die Rechenressourcenkosten bei rechenintensiven Vorgängen platzen.

Databricks empfiehlt, die Einstellungen für Max-Worker zu optimieren, um den Kostenlatenz-Kompromiss für Ihre speziellen Anforderungen auszugleichen.

Der Bereich

Überwachen von klassischen Pipelines, für die erweiterte automatische Skalierung aktiviert ist

Sie können das Ereignisprotokoll in der Pipeline-Benutzeroberfläche verwenden, um erweiterte automatische Skalierungsmetriken für klassische Pipelines zu überwachen. Erweiterte ereignisse für die automatische Skalierung weisen den autoscale Ereignistyp auf. Im Folgenden sind Beispielereignisse aufgeführt:

Event Nachricht
Cluster-Größenänderungsanforderung gestartet Scaling [up or down] to <y> executors from current cluster size of <x>
Anforderung zum Ändern der Clustergröße erfolgreich ausgeführt Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED
Cluster-Größenänderungsanforderung teilweise erfolgreich Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED
Fehler bei Clustergrößenänderungsanforderung Achieved cluster size <x> for cluster <cluster-id> with status FAILED

Sie können auch erweiterte automatische Skalierungsereignisse anzeigen, indem Sie das Ereignisprotokoll direkt abfragen:

Was ist die automatische vertikale Skalierung?

Serverlose Pipelines tragen zur horizontalen automatischen Skalierung von Databricks bei, indem sie die erweiterte automatische Skalierung durch die automatische Zuordnung der kosteneffizientesten Instanztypen, die Ihre Pipeline ausführen können, ohne an Speicherfehlern zu scheitern, bieten. Bei der automatischen vertikalen Skalierung wird hochskaliert, wenn größere Instanzentypen erforderlich sind, um ein Pipelineupdate auszuführen, und herunterskaliert, wenn ermittelt wird, dass das Update mit kleineren Instanztypen ausgeführt werden kann. Die automatische vertikale Skalierung bestimmt, ob Treiberknoten, Workerknoten oder sowohl Treiber- als auch Workerknoten hoch- oder herunterskaliert werden sollen.

Vertikale automatische Skalierung wird für alle serverlosen Pipelines verwendet, einschließlich Pipelines, die in Databricks SQL materialisierte Ansichten und Streamingtabellen verwenden.

Die automatische vertikale Skalierung funktioniert durch die Erkennung von Pipelineupdates, die aufgrund von Fehlern wegen unzureichenden Arbeitsspeichers fehlgeschlagen sind. Die vertikale automatische Skalierung weist größere Instanztypen zu, wenn diese Fehler basierend auf den Speicherauslastungsdaten erkannt werden, die beim fehlgeschlagenen Update gesammelt wurden. Im Produktionsmodus wird automatisch ein neues Update gestartet, das die neuen Computeressourcen verwendet. Im Entwicklungsmodus werden die neuen Computeressourcen verwendet, wenn Sie ein neues Update manuell starten.

Wenn die vertikale automatische Skalierung erkennt, dass der Speicher der zugeordneten Instanzen konsistent nicht ausgelastet ist, werden die Instanztypen, die im nächsten Pipelineupdate verwendet werden sollen, verkleinert.