Vergleich von serverlosen und Clusterbereitstellungen von Managed Service for Apache Spark

Managed Service for Apache Spark umfasst jetzt die bisherigen Produktoptionen „Dataproc on Compute Engine“ (Clusterbereitstellung) und „Google Cloud Serverless for Apache Spark“ (serverlose Bereitstellung).

Beide Optionen bieten eine verwaltete, hochgradig skalierbare, produktionsreife und sichere Spark-Umgebung, die mit OSS kompatibel ist und Datenformate vollständig unterstützt. Sie unterscheiden sich jedoch in der Verwaltung der zugrunde liegenden Infrastruktur und der Abrechnung von Ressourcen. Sehen Sie sich die folgenden Funktionen und Anwendungsfälle an, um die richtige Spark-Lösung auszuwählen.

Weitere Informationen zu serverlosen Bereitstellungen von Managed Service for Apache Spark finden Sie unter Übersicht über die serverlose Bereitstellung von Managed Service for Apache Spark.

Managed Service for Apache Spark-Bereitstellungen vergleichen

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

Bereitstellung Serverlos Cluster
Verarbeitungsframeworks Batch-Arbeitslasten und interaktive Sitzungen: Spark Spark Andere Open-Source-Frameworks wie Hive, Flink, Trino und Kafka
Serverlos Ja Nein
Startzeit 50er 120 s
Infrastruktursteuerung 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

Die beste Bereitstellung von Managed Service for Apache Spark 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

Bereitstellungen von Managed Service for Apache Spark unterscheiden sich hinsichtlich des Kontrollgrads, der Infrastrukturverwaltung und des Abrechnungsmodus.

  • Serverlose Bereitstellung:Managed Service for Apache Spark bietet Spark-Jobs-as-a-Service und führt Spark auf einer vollständig verwalteten Google Cloud-Infrastruktur aus. Sie zahlen für die Joblaufzeit.
  • Clusterbereitstellung:Bietet Spark-Cluster als Dienst, der verwaltete Spark-Cluster in Ihrer Compute Engine-Infrastruktur ausführt. 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
Codemanagement hat Vorrang vor Infrastrukturmanagement
Cluster Langlebige, gemeinsam genutzte Umgebungen
Arbeitslasten, bei denen eine präzise Steuerung der Infrastruktur erforderlich 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.
Kontrolle und Anpassung Weniger Infrastrukturkontrolle, mit Fokus auf das Einreichen von Code und die Angabe von Spark-Parametern. Mehr Kontrolle über die Clusterkonfiguration, Maschinentypen und Software. Spot-VMs verwenden und Reservierungen und Compute Engine-Ressourcenkapazität wiederverwenden. 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 Overhead: Google Cloud übernimmt die Verwaltung der Infrastruktur, Skalierung und Bereitstellung und ermöglicht so ein NoOps-Modell. Gemini Cloud Assist erleichtert die Fehlerbehebung und das serverlose Autotuning sorgt für optimale Leistung. Höherer Aufwand, der Clusterverwaltung, Skalierung und Wartung erfordert.
Effizienzmodell Kein Leerlauf-Overhead: Rechenressourcen werden nur zugewiesen, wenn der Job ausgeführt wird. Es fallen keine Kosten für das Starten und Herunterfahren an. Gemeinsame interaktive Sitzungen werden unterstützt, um die Effizienz zu steigern. Effizienzsteigerung durch die gemeinsame Nutzung von Clustern für Jobs und Teams mit einem Mandantenmodell.
Standorteinstellungen Managed Service for Apache Spark unterstützt regionale Arbeitslasten ohne zusätzliche Kosten, um für zusätzliche Zuverlässigkeit und Verfügbarkeit zu sorgen. 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, nicht für das Starten und Beenden, basierend auf den verbrauchten Ressourcen. Die Abrechnung erfolgt nach verwendeten 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 CUDs für BigQuery gelten für Managed Service for Apache Spark-Jobs. Compute Engine-CUDs gelten für die gesamte Ressourcennutzung.
Bild- und Laufzeitsteuerung Nutzer können untergeordnete Managed Service for Apache Spark-Laufzeitversionen anpinnen. Untergeordnete Versionen werden von Managed Service for Apache Spark verwaltet. Nutzer können Neben- und untergeordnete Versionen 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 120 s

Wann sollte eine serverlose Bereitstellung gewählt werden?

Bei der serverlosen Bereitstellung von Managed Service for Apache Spark wird die komplexe Clusterverwaltung abstrahiert, sodass Sie sich auf den Spark-Code konzentrieren können. Daher ist es eine ausgezeichnete Wahl für die folgenden Datenverarbeitungsszenarien:

  • Ad-hoc- und interaktive Analysen: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 Fokus auf die Infrastruktur zu starten.
  • Spark-basierte Anwendungen und Pipelines:Wenn Sie neue Datenpipelines oder Anwendungen in Spark entwickeln, kann Managed Service for Apache Spark die Entwicklung erheblich beschleunigen, da der Betriebsaufwand für die Clusterverwaltung entfällt.
  • Arbeitslasten mit sporadischer oder unvorhersehbarer Nachfrage:Bei intermittierenden Spark-Jobs oder Jobs mit schwankenden Ressourcenanforderungen können die Kosten durch serverloses Autoscaling und nutzungsabhängige Abrechnung (Gebühren für den Ressourcenverbrauch des Jobs) erheblich gesenkt werden.
  • 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.
  • Vereinfachter Betrieb und geringerer Aufwand:Das Infrastrukturmanagement von Managed Service for Apache Spark reduziert den Betriebsaufwand und die Kosten.

Wann sollte die Clusterbereitstellung verwendet werden?

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

  • Migration vorhandener Hadoop- und Spark-Arbeitslasten: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 Steuerung:Sie können Maschinentypen, Laufwerksgrößen und Netzwerkkonfigurationen für Cluster anpassen. Diese Kontrollmöglichkeit ist entscheidend für die Leistungsoptimierung und die Optimierung der Ressourcennutzung bei komplexen, zeitaufwendigen 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 mit Tools des Hadoop-Ökosystems wie Hive, Pig oder Presto mit Ihren Spark-Arbeitslasten.
  • 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 vereinfachen.

Zusammenfassung

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

  • Wählen Sie Managed Service for Apache Spark serverless, weil es einfach zu verwenden ist, kostengünstig für intermittierende Arbeitslasten ist und die Entwicklung neuer Spark-Anwendungen beschleunigt, da der Aufwand für die Infrastrukturverwaltung entfällt.
  • 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, gemeinsam genutzte Clusterumgebung benötigen.

Nachdem Sie die in diesem Abschnitt aufgeführten Faktoren berücksichtigt 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 zu nutzen.