Flexibilität und Effizienz von Clustern und Jobs maximieren
Auf dieser Seite finden Sie Best Practices und Planungsstrategien, mit denen Sie robuste Managed Service for Apache Spark-Cluster entwerfen können, die die Verfügbarkeit von Ressourcen in allen Regionen maximieren, Bereitstellungsverzögerungen reduzieren und Leistungs- und Kostenoptimierungen nutzen. Google Cloud
Übersicht zur Verfügbarkeit von Ressourcen
Wenn Sie Jobs in starren Managed Service for Apache Spark-Clustern ausführen, entstehen Single Points of Failure, die aufgrund lokaler Nichtverfügbarkeit oder Bereitstellungsverzögerungen zu Jobunterbrechungen sowie zu Cluster- und Jobfehlern führen können.
Das Risiko der Nichtverfügbarkeit von Ressourcen ist bei Clustern hoch, die mit einem der folgenden starren Anti-Patterns konfiguriert sind:
- Feste Zonenplatzierung: Eine einzelne Zone wird mit dem Flag oder
Feld
zonehartcodiert, anstatt Managed Service for Apache Spark AutoZone den Cluster dynamisch in der optimalen Zone platzieren zu lassen. Dieses Anti-Pattern verhindert, dass bei der Clustererstellung Rechenressourcen verwendet werden, die in benachbarten Zonen verfügbar sind. - Ein einzelner Maschinentyp oder eine einzelne Generation pro Knotenrolle: Knotenrollen werden auf eine einzelne Maschinengeneration oder einen Maschinentyp beschränkt. Dieses Anti-Pattern verhindert, dass der Cluster auf Alternativen zurückgreift.
- Vertikale Skalierung mit weniger großen VMs:Cluster werden vertikal skaliert, um auf eine kleine Anzahl großer VM-Formen angewiesen zu sein. Dieses Anti-Pattern schränkt die Planungsflexibilität ein.
- Clustererstellung nach dem Alles-oder-Nichts-Prinzip: Alle Worker-Knoten müssen gleichzeitig bereitgestellt werden, anstatt eine teilweise Cluster erstellung in Kombination mit Autoscaling zu verwenden. Dieses Anti-Pattern führt dazu, dass die Clustererstellung fehlschlägt, wenn aufgrund einer vorübergehenden Nichtverfügbarkeit von Ressourcen kein Worker-Knoten zugewiesen werden kann.
- Spitzen bei der Planung:Große Batchpipelines werden während der Spitzenzeiten ausgelöst, was die regionale Auslastung erhöht.
Bei der Verfügbarkeit von Ressourcen werden Jobs so konzipiert, dass sie hardwareflexibel, multizonal und skalierbar sind. Wenn Sie Cluster von starren Konfigurationen entkoppeln und Fallbacks für mehrere Maschinenfamilien aktivieren, können Sie die Erfolgsraten bei der Erstellung erhöhen, die Startlatenz minimieren und SLAs konsistent einhalten.
Empfehlungen zur Verfügbarkeit von Ressourcen
Übernehmen Sie die folgenden Optimierungen, um die Ressourcenverfügbarkeit und Jobstabilität zu verbessern:
Flexible VMs verwenden
Mit der Funktion „Flexible VM“ können Sie eine Rangliste von VM-Typen für Master-, primäre und sekundäre Worker Knoten angeben. Dadurch werden die Erfolgsraten bei der Erstellung erhöht, da die aufgeführten VM-Typen ausgewertet und automatisch Zonen mit verfügbarer Kapazität ausgewählt werden.
Empfehlung:Verwenden Sie flexible VMs mit Laufwerküberschreibungen. So können Sie für verschiedene Kandidaten-Maschinenfamilien in derselben Clusterrichtlinie unterschiedliche Laufwerktypen angeben, z. B. Hyperdisk und Persistent Disk. Sie können auch Maschinenfamilien der 2. und 4. Generation in einer einzigen Richtlinie kombinieren, um Jobs über einen größeren Pool zu skalieren und Kapazitätslimits zu umgehen.
Für Jobs mit N2- und N2D-Maschinen sind die folgenden Rangfolgen möglich:
- Rang 0:N2, N2D
- Rang 1:N4, N4D (mit Hyperdisk Balanced)
- Rang 2:C4, C4D, C3, C3D (mit Hyperdisk Balanced) Lokale SSDs können mit C4 und C4D verwendet werden. In der Regel unterstützen 8 oder 16 Kerne jedoch nur 1–2 lokale SSDs.
- Rang 3:E2 (geringere Leistung; nur bei Bedarf verwenden)
Für Jobs mit n2d-standard-16 lauten die Rangfolgen beispielsweise so:
- Rang 0:
n2d-standard-16,n2-standard-16 - Rang 1:
n4-standard-16,n4d-standard-16 - Rang 2:
c4-standard-16,c4d-standard-16,c3-standard-22,c3d-standard-16 - Rang 3:
e2-standard-16
Berücksichtigen Sie bei der Verwendung von flexiblen VMs die folgenden Faktoren:
Unterstützung für gemischte Laufwerktypen: Maschinentypen der 3. und 4. Generation unterstützen nur Hyperdisk-Laufwerktypen und keine Persistent Disk -Typen. Wenn Sie Maschinen der 2. und 4. Generation kombinieren, geben Sie für jede Instanzauswahl in der
instanceFlexibilityPolicyeinediskConfigan. Weitere Informationen finden Sie unter Laufwerk überschreibungen.- Verwenden Sie Hyperdisk Balanced mit den Baseline-Werten für IOPS und Durchsatz die unter Standardleistung von Hyperdisk Balanced angegeben sind.
Ressourcenkontingente:Wenn Sie eine Richtlinie für flexible VMs mit Fallback-Typen definieren, prüft Compute Engine die Kontingente für alle Kandidatentypen und -laufwerke in der Region. Prüfen Sie, ob Ihrem Projekt genügend Kontingente für Compute und Laufwerke für alle konfigurierten Elemente zugewiesen sind.
Compute Engine-Rabatte: Nutzen Sie flexible Rabatte für zugesicherte Nutzung (Committed Use Discounts, CUDs) , um ausgabenbasierte Einsparungen auf mehrere VM-Familien und -Regionen anzuwenden.
Preise:Verwenden Sie den Google Cloud Preisrechner um die Kosten für jeden Rang in Ihrer Richtlinie zu vergleichen.
Konfigurationsvorlagen und Bereitstellungsbeispiele finden Sie unter:
Automatische Zonenplatzierung verwenden
Verwenden Sie die automatische Zonenplatzierung, damit Managed Service for Apache Spark die beste Zone für die Bereitstellung von Ressourcen auswählen kann. Wenn Sie benutzerdefinierte VPC-Netzwerke (Virtual Private Cloud) verwenden, muss das Subnetz in allen regionalen Zonen genügend IP-Adressen haben.
Kleinere Maschinentypen verwenden
Konzipieren Sie Jobs so, dass sie horizontal auf kleinere Maschinentypen (4, 8 oder 16 Kerne) skaliert werden, anstatt vertikal mit größeren VMs zu skalieren. Kleinere VM-Größen sind in allen Zonen besser verfügbar, was Bereitstellungsverzögerungen verhindern kann.
- Überprüfen und überarbeiten Sie Jobs, die große Maschinentypen für Treibernknoten verwenden.
- Überprüfen Sie Jobs, die nur Treibernknoten ohne Worker-Knoten ausführen (Cluster mit einem Knoten). Jobs, die in Clustern mit einem Knoten ausgeführt werden, können nicht dynamisch skaliert werden und binden die Ausführung an einen einzelnen physischen Host.
Cluster-Autoscaling verwenden
Verwenden Sie Cluster Autoscaling mit einer ausreichend hohen maximalen Anzahl von Instanzen, um die Kapazität für Jobs mit Ressourcenvariabilität (Spitzen) zu verwalten.
Teilweise Clustererstellung mit Autoscaling verwenden
Verwenden Sie die teilweise Cluster erstellung, mit der Sie eine Mindestanzahl primärer Worker angeben können, in Kombination mit Autoscaling. Wenn der Cluster mit weniger Workern als angefordert gestartet wird, kann Autoscaling dynamisch weitere Worker hinzufügen, sobald Ressourcen verfügbar sind.
Jobs außerhalb der Spitzenzeiten planen
Planen Sie Jobs außerhalb der Spitzenzeiten, z. B. mittags und an Wochenenden. Planen Sie Jobs zu ungewöhnlichen Zeiten, z. B. um 10:07 Uhr statt um 10:00 Uhr, um Planungsspitzen zu vermeiden.
Nächste Schritte
- Informationen zum Priorisieren von VM-Typen mit flexiblen VMs
- Informationen zum Konfigurieren der automatischen Zonen platzierung
- Informationen zum Erstellen eines teilweisen Clusters
- Informationen zum Konfigurieren von Autoscaling Richtlinien.
- Weitere Informationen zu Rabatten für zugesicherte Nutzung.
- Weitere Informationen zu Managed Service for Apache Spark Serverless.