Vergleich von serverlosen und Clusterbereitstellungen von Managed Service for Apache Spark

Managed Service for Apache Spark umfasst jetzt die früheren Produktoptionen „Managed Service for Apache Spark on Compute Engine“ (Clusterbereitstellung) und „Managed Service for Apache Spark“ (serverlose Bereitstellung).

Sowohl serverlose als auch Cluster-Bereitstellungen bieten eine verwaltete, hochskalierbare, produktionsreife und sichere Spark-Umgebung, die OSS-kompatibel ist und Datenformate vollständig unterstützt. Sie unterscheiden sich jedoch darin, wie sie die zugrunde liegende Infrastruktur verwalten und Ressourcen abrechnen. Sehen Sie sich die folgenden Funktionen und Anwendungsfälle an, um eine Spark-Lösung auszuwählen.

Managed Service for Apache Spark-Bereitstellungen vergleichen

In der folgenden Tabelle sind die wichtigsten Unterschiede zwischen Managed Service for Apache Spark-Cluster- und serverlosen Bereitstellungen aufgeführt.

Bereitstellung Serverlos Cluster
Verarbeitungs-Frameworks Batcharbeitslasten und interaktive Sitzungen: Spark Spark. Andere Open-Source-Frameworks wie Hive, Flink, Trino und Kafka
Serverlos Ja Nein
Startzeit 50er-Jahre 120 Sek.
Infrastrukturkontrolle Nein Ja
Ressourcenverwaltung Serverlos YARN
GPU-Unterstützung Ja Ja
Interaktive Sitzungen Ja Nein
Benutzerdefinierte Container Ja Nein
VM-Zugriff (SSH) Nein Ja
Java-Versionen Java 17, 21 Java 17 und frühere Versionen

Bestes Managed Service for Apache Spark-Deployment auswählen

In diesem Abschnitt werden die wichtigsten Stärken und primären Anwendungsfälle von Managed Service for Apache Spark beschrieben, damit Sie die beste Managed Service for Apache Spark-Bereitstellung (Cluster oder serverlos) für Ihre Spark-Arbeitslasten auswählen können.

Übersicht

Managed Service for Apache Spark-Bereitstellungen unterscheiden sich im Grad der Kontrolle, der Infrastrukturverwaltung und dem Abrechnungsmodus, die jeweils angeboten werden.

  • Serverlose Bereitstellung: Managed Service for Apache Spark bietet Spark-Jobs als Dienst und führt Spark auf einer vollständig verwalteten Google Cloud-Infrastruktur aus. Sie zahlen für die Joblaufzeit.
  • Clusterbereitstellung: Bietet Spark-Cluster-as-a-Service, wobei Managed Spark auf Ihrer Compute Engine-Infrastruktur ausgeführt wird. Sie bezahlen für die Clusterbetriebszeit.

Aufgrund dieser Unterschiede eignet sich jede Managed Service for Apache Spark-Bereitstellung am besten für die folgenden Anwendungsfälle:

Bereitstellung Anwendungsfälle
serverlos Verschiedene dedizierte Jobumgebungen
Geplante Batcharbeitslasten
Codeverwaltung hat Vorrang vor Infrastrukturverwaltung
Cluster Langlebige, gemeinsam genutzte Umgebungen
Arbeitslasten, bei denen eine präzise Steuerung der Infrastruktur notwendig ist
Migration von Legacy-Hadoop- und Spark-Umgebungen

Wichtige Unterschiede

Funktion serverlose Bereitstellung Clusterbereitstellung
Verwaltungsmodell Vollständig verwaltete, serverlose Ausführungsumgebung. Clusterbasiert. Sie stellen Cluster bereit und verwalten sie.
Steuerung und Anpassung Weniger Kontrolle über die Infrastruktur, Fokus auf das Senden von Code und das Angeben von Spark-Parametern. Mehr Kontrolle über Clusterkonfiguration, Maschinentypen und Software. Möglichkeit, Spot-VMs zu verwenden und Reservierungen sowie Compute Engine-Ressourcenkapazität wiederzuverwenden. Geeignet für Arbeitslasten, die von bestimmten VM-Formen wie CPU-Architekturen abhängig sind.
Anwendungsfälle Ad-hoc-Abfragen, interaktive Analysen, neue Spark-Pipelines und Arbeitslasten mit unvorhersehbarem Ressourcenbedarf. Langlebige, gemeinsam genutzte Cluster, Migration vorhandener Hadoop- und Spark-Arbeitslasten mit benutzerdefinierten Konfigurationen, Arbeitslasten, die eine umfassende Anpassung erfordern.
Operativer Aufwand Geringerer Aufwand. Google Cloud übernimmt die Verwaltung, Skalierung und Bereitstellung der Infrastruktur, was ein NoOps-Modell ermöglicht. Gemini Cloud Assist erleichtert die Fehlerbehebung, während die serverlose automatische Abstimmung für eine optimale Leistung sorgt. Höherer Aufwand, der Clusterverwaltung, Skalierung und Wartung erfordert.
Effizienzmodell Kein Rechenaufwand im Leerlauf: Rechenressourcen werden nur zugewiesen, wenn der Job ausgeführt wird. Keine Start- und Shutdown-Kosten. Unterstützung für freigegebene interaktive Sitzungen für mehr Effizienz. Effizienzsteigerung durch die gemeinsame Nutzung von Clustern für verschiedene Jobs und Teams mit einem mandantenfähigen Modell.
Standorteinstellung Managed Service for Apache Spark unterstützt regionale Arbeitslasten ohne zusätzliche Kosten, um zusätzliche Zuverlässigkeit und Verfügbarkeit zu bieten. Cluster sind zonal. Die Zone kann bei der Clustererstellung automatisch ausgewählt werden.
Kosten Die Abrechnung erfolgt nur für die Dauer der Ausführung des Spark-Jobs, ohne Start und Beendigung, basierend auf den verbrauchten Ressourcen. Die Abrechnung erfolgt nach verwendeten Datenrecheneinheiten (Data Compute Units, DCUs) und anderen Infrastrukturkosten. Die Abrechnung erfolgt für die Zeit, in der der Cluster ausgeführt wird, einschließlich Start und Beendigung, basierend auf der Anzahl der Knoten. Enthält die Lizenzgebühr für Managed Service for Apache Spark sowie die Infrastrukturkosten.
Rabatte für zugesicherte Nutzung Ausgabenbasierte Rabatte für zugesicherte Nutzung in BigQuery gelten für Managed Service for Apache Spark-Jobs. Compute Engine-CUDs gelten für die gesamte Ressourcennutzung.
Image- und Laufzeitsteuerung Nutzer können Nebenversionen der Managed Service for Apache Spark-Laufzeit anpinnen. Untergeordnete Nebenversionen werden von Managed Service for Apache Spark verwaltet. Nutzer können Neben- und Unternebenversionen von Managed Service for Apache Spark-Images anpinnen.
Ressourcenverwaltung serverlos YARN
GPU-Unterstützung Ja Ja
Interaktive Sitzungen Ja Nein
Benutzerdefinierte Container Ja Nein
VM-Zugriff (SSH) Nein Ja
Java-Versionen Java 17, 21 Unterstützung früherer Versionen
Startzeit 50er-Jahre 120 Sek.

Wann Sie sich für eine serverlose Bereitstellung entscheiden sollten

Die serverlose Bereitstellung von Managed Service for Apache Spark abstrahiert die komplexe Clusterverwaltung. So können Sie sich ganz auf Ihren Spark-Code konzentrieren. Daher eignet es sich hervorragend für die folgenden Datenverarbeitungsszenarien:

  • Ad-hoc- und interaktive Analyse: Für Data Scientists und Analysten, die interaktive Abfragen und explorative Analysen mit Spark ausführen, bietet das serverlose Modell eine schnelle Möglichkeit, ohne sich auf die Infrastruktur konzentrieren zu müssen.
  • Spark-basierte Anwendungen und Pipelines: Wenn Sie neue Datenpipelines oder Anwendungen in Spark erstellen, kann Managed Service for Apache Spark die Entwicklung erheblich beschleunigen, da der operative Aufwand für die Clusterverwaltung entfällt.
  • Arbeitslasten mit sporadischem oder unvorhersehbarem Bedarf: Bei unregelmäßigen Spark-Jobs oder Jobs mit schwankenden Ressourcenanforderungen können das serverlose Autoscaling und die nutzungsbasierte Preisgestaltung (Gebühren fallen für den Ressourcenverbrauch des Jobs an) die Kosten erheblich senken.
  • Fokus auf Entwicklerproduktivität: Da keine Cluster bereitgestellt und verwaltet werden müssen, beschleunigt Managed Service for Apache Spark die Erstellung von Geschäftslogik, liefert schneller Erkenntnisse und steigert die Produktivität.
  • Vereinfachte Abläufe und weniger Aufwand: Die Infrastrukturverwaltung von Managed Service for Apache Spark reduziert den Betriebsaufwand und die Kosten.

Wann sollte die Clusterbereitstellung ausgewählt werden?

Sie können die Clusterbereitstellung von Managed Service for Apache Spark verwenden, um Apache Spark und andere Open-Source-Frameworks zur Datenverarbeitung auszuführen. Sie bietet ein hohes Maß an Kontrolle und Flexibilität und ist in den folgenden Szenarien die bevorzugte Wahl:

  • Vorhandene Hadoop- und Spark-Arbeitslasten migrieren: Unterstützt die Migration lokaler Hadoop- oder Spark-Cluster zu Google Cloud. Vorhandene Konfigurationen mit minimalen Codeänderungen replizieren, insbesondere bei Verwendung älterer Spark-Versionen.
  • Umfassende Anpassung und Kontrolle: Sie können Cluster-Maschinentypen, Laufwerksgrößen und Netzwerkkonfigurationen anpassen. Diese Kontrolle ist entscheidend für die Leistungsoptimierung und die Optimierung der Ressourcennutzung für komplexe, lang laufende Jobs.
  • Langlebige und persistente Cluster: Unterstützt kontinuierliche, langlebige Spark-Jobs und persistente Cluster für mehrere Teams und Projekte.
  • Vielfältiges Open-Source-Ökosystem: Bietet eine einheitliche Umgebung zum Ausführen von Datenverarbeitungspipelines, die Hadoop-Ökosystemtools wie Hive, Pig oder Presto mit Ihren Spark-Arbeitslasten ausführen.
  • Sicherheits-Compliance: Ermöglicht die Kontrolle über die Infrastruktur, um bestimmte Sicherheits- oder Compliance-Standards zu erfüllen, z. B. den Schutz von personenidentifizierbaren Informationen (PII) oder geschützten Gesundheitsdaten (PHI).
  • Infrastrukturflexibilität: Bietet Spot-VMs und die Möglichkeit, Reservierungen und Compute Engine-Ressourcenkapazität wiederzuverwenden, um die Ressourcennutzung auszugleichen und Ihre Cloud-Infrastrukturstrategie zu unterstützen.

Zusammenfassung

Die Entscheidung, ob Sie Managed Service for Apache Spark-Cluster oder serverlose Bereitstellungen verwenden, hängt von Ihren Arbeitslastanforderungen, Ihren betrieblichen Präferenzen und dem gewünschten Maß an Kontrolle ab.

  • Wählen Sie Managed Service for Apache Spark Serverless, wenn Sie eine nutzerfreundliche, kostengünstige Lösung für unregelmäßige Arbeitslasten suchen und die Entwicklung neuer Spark-Anwendungen beschleunigen möchten, indem Sie den Aufwand für die Infrastrukturverwaltung reduzieren.
  • Wählen Sie Managed Service for Apache Spark-Cluster aus, wenn Sie maximale Kontrolle benötigen, Hadoop- oder Spark-Arbeitslasten migrieren müssen oder eine persistente, benutzerdefinierte, freigegebene Clusterumgebung benötigen.

Nachdem Sie die in diesem Abschnitt aufgeführten Faktoren bewertet haben, wählen Sie die effizienteste und kostengünstigste Managed Service for Apache Spark-Bereitstellung aus, um Spark auszuführen und das volle Potenzial Ihrer Daten auszuschöpfen.