Vergleich mit Google Cloud Serverless for Apache Spark

Für Google Cloud Kunden, die Apache Spark zum Ausführen ihrer Datenverarbeitungs- und Analysearbeitslasten verwenden, ist die Entscheidung zwischen Dataproc in Compute Engine (in diesem Dokument als „Dataproc“ bezeichnet) und Serverless for Apache Spark von entscheidender Bedeutung. Beide Dienste bieten eine verwaltete, hochgradig skalierbare, produktionsreife und sichere Spark-Umgebung, die OSS-kompatibel ist und Datenformate vollständig unterstützt. Die beiden Plattformen unterscheiden sich jedoch grundlegend in der Verwaltung und Abrechnung der zugrunde liegenden Infrastruktur.

In diesem Dokument wird Google Cloud Serverless for Apache Spark mit Dataproc verglichen. Außerdem werden die Funktionen und Möglichkeiten der beiden Lösungen aufgeführt, damit Sie die beste Lösung für Ihre Spark-Arbeitslasten auswählen können.

Serverless for Apache Spark mit Dataproc vergleichen

Wenn Sie Infrastruktur bereitstellen und verwalten und dann Arbeitslasten in Spark und anderen Open-Source-Verarbeitungs-Frameworks ausführen möchten, verwenden Sie Dataproc in Compute Engine. In der folgenden Tabelle sind die wichtigsten Unterschiede zwischen Dataproc in Compute Engine und Serverless for Apache Spark aufgeführt.

Leistungsvermögen Serverless for Apache Spark Dataproc in Compute Engine
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
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

Den besten Spark-Dienst auswählen

In diesem Abschnitt werden die wichtigsten Stärken und primären Anwendungsfälle für jeden Dienst beschrieben, damit Sie den besten Dienst für Ihre Spark-Arbeitslasten auswählen können.

Übersicht

Dataproc und Serverless for Apache Spark unterscheiden sich hinsichtlich des Kontrollgrads, der Infrastrukturverwaltung und des Abrechnungsmodus.

  • Von Dataproc verwaltetes Spark:Dataproc bietet Spark-Cluster-as-a-Service, bei dem verwaltetes Spark in Ihrer Compute Engine-Infrastruktur ausgeführt wird. Sie zahlen für die Cluster-Uptime.
  • Serverless for Apache Spark:Serverless 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.

Aufgrund dieser Unterschiede eignet sich jeder Dienst am besten für die folgenden Anwendungsfälle:

Dienst Anwendungsfälle
Dataproc Lang andauernde, freigegebene Umgebungen
Arbeitslasten, die eine detaillierte Kontrolle über die Infrastruktur erfordern
Migration von Legacy-Hadoop- und Spark-Umgebungen
Serverless for Apache Spark Verschiedene dedizierte Jobumgebungen
Geplante Batcharbeitslasten
Codemanagement hat Vorrang vor der Infrastrukturverwaltung

Wichtige Unterschiede

Funktion Dataproc Serverless for Apache Spark
Verwaltungsmodell Clusterbasiert. Sie stellen Cluster bereit und verwalten sie. Vollständig verwaltete, serverlose Ausführungsumgebung.
Kontrolle und Anpassung 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. Weniger Infrastrukturkontrolle, mit Fokus auf das Einreichen von Code und die Angabe von Spark-Parametern.
Anwendungsfälle Lang andauernde, gemeinsam genutzte Cluster, Migration vorhandener Hadoop- und Spark-Arbeitslasten mit benutzerdefinierten Konfigurationen, Arbeitslasten, die eine umfassende Anpassung erfordern. Ad-hoc-Abfragen, interaktive Analysen, neue Spark-Pipelines und Arbeitslasten mit unvorhersehbarem Ressourcenbedarf.
Operativer Aufwand Höherer Aufwand, der Clusterverwaltung, Skalierung und Wartung erfordert. Geringerer Overhead: Google Cloud verwaltet die Infrastruktur, Skalierung und Bereitstellung und ermöglicht so ein NoOps-Modell. Gemini Cloud Assist erleichtert die Fehlerbehebung und das automatische Optimieren von Serverless for Apache Spark sorgt für optimale Leistung.
Effizienzmodell Effizienzsteigerung durch die gemeinsame Nutzung von Clustern für Jobs und Teams mit einem Mandantenmodell. 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.
Standorteinstellungen Cluster sind zonal. Die Zone kann bei der Clustererstellung automatisch ausgewählt werden. Serverless for Apache Spark unterstützt regionale Arbeitslasten ohne zusätzliche Kosten, um für zusätzliche Zuverlässigkeit und Verfügbarkeit zu sorgen.
Kosten 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 Dataproc-Lizenzgebühr sowie die Infrastrukturkosten. Die Abrechnung erfolgt nur für die Dauer der Ausführung des Spark-Jobs, nicht für das Starten und Beenden, basierend auf den genutzten Ressourcen. Die Abrechnung erfolgt als „Verwendete Data Compute Units (DCU)“ und „Andere Infrastrukturkosten“.
Rabatte für zugesicherte Nutzung Compute Engine-CUDs gelten für die gesamte Ressourcennutzung. Ausgabenbasierte CUDs für BigQuery gelten für Serverless for Apache Spark-Jobs.
Bild- und Laufzeitsteuerung Nutzer können Dataproc-Image-Versionen an Neben- und untergeordnete Versionen anpinnen. Nutzer können Nebenversionen der Serverless for Apache Spark-Laufzeitversionen anpinnen. Untergeordnete Versionen werden von Serverless for Apache Spark verwaltet.
Ressourcenverwaltung YARN Serverlos
GPU-Unterstützung Ja Ja
Interaktive Sitzungen Nein Ja
Benutzerdefinierte Container Nein Ja
VM-Zugriff (SSH) Ja Nein
Java-Versionen Unterstützung für frühere Versionen Java 17, 21
Startzeit 120 s 50er

Wann sollte Dataproc verwendet werden?

Dataproc ist ein verwalteter Dienst, mit dem Sie Apache Spark und andere Open-Source-Frameworks für die Datenverarbeitung ausführen können. 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 Clustermaschinentypen, Laufwerksgrößen und Netzwerkkonfigurationen anpassen. Diese Kontrollmöglichkeiten sind entscheidend für die Leistungsoptimierung und die Optimierung der Ressourcennutzung bei komplexen, lang andauernden Jobs.
  • Langlebige und persistente Cluster:Unterstützt kontinuierliche, langlebige Spark-Jobs und persistente Cluster für mehrere Teams und Projekte.
  • Vielfältige Open-Source-Umgebung:Bietet eine einheitliche Umgebung zum Ausführen von Datenverarbeitungs-Pipelines mit Hadoop-Ökosystemtools wie Hive, Pig oder Presto mit Ihren Spark-Arbeitslasten.
  • Sicherheitskonformität: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.

Wann sollte Serverless for Apache Spark verwendet werden?

Bei Serverless for Apache Spark wird die Komplexität der Clusterverwaltung abstrahiert, sodass Sie sich auf den Spark-Code konzentrieren können. Daher eignet sich die Funktion hervorragend für die folgenden Datenverarbeitungsszenarien:

  • Ad-hoc- und interaktive Analysen:Data Scientists und Analysten, die interaktive Abfragen und explorative Analysen mit Spark ausführen, können mit dem serverlosen Modell schnell loslegen, ohne sich um die Infrastruktur kümmern zu müssen.
  • Spark-basierte Anwendungen und Pipelines:Wenn Sie neue Datenpipelines oder Anwendungen in Spark erstellen, kann Serverless 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 Autoscaling-Funktion und die nutzungsabhängige Abrechnung (Gebühren für den Ressourcenverbrauch von Jobs) von Serverless for Apache Spark die Kosten erheblich senken.
  • Fokus auf die Produktivität von Entwicklern:Da keine Cluster bereitgestellt und verwaltet werden müssen, beschleunigt Serverless for Apache Spark die Erstellung von Geschäftslogik, liefert schneller Erkenntnisse und steigert die Produktivität.
  • Vereinfachte Abläufe und geringerer Aufwand:Die Infrastrukturverwaltung von Serverless for Apache Spark reduziert den Betriebsaufwand und die Kosten.

Zusammenfassung

Die Entscheidung, ob Sie Dataproc oder Serverless for Apache Spark verwenden, hängt von Ihren Arbeitslastanforderungen, betrieblichen Präferenzen und dem gewünschten Maß an Kontrolle ab.

  • Wählen Sie Dataproc, wenn Sie maximale Kontrolle benötigen, Hadoop- oder Spark-Arbeitslasten migrieren müssen oder eine persistente, benutzerdefinierte, freigegebene Clusterumgebung benötigen.
  • Wählen Sie Serverless for Apache Spark, wenn Sie einen benutzerfreundlichen, kostengünstigen Dienst für intermittierende Arbeitslasten benötigen, der die Entwicklung neuer Spark-Anwendungen beschleunigt, da der Aufwand für die Infrastrukturverwaltung entfällt.

Nachdem Sie die in diesem Abschnitt aufgeführten Faktoren berücksichtigt haben, wählen Sie den effizientesten und kostengünstigsten Dienst für die Ausführung von Spark aus, um das volle Potenzial Ihrer Daten zu nutzen.