Confronto con Google Cloud Serverless per Apache Spark

Per i clienti Google Cloud che si affidano ad Apache Spark per eseguire i propri carichi di lavoro di elaborazione e analisi dei dati, una decisione fondamentale è la scelta tra Dataproc su Compute Engine (denominato "Dataproc" in questo documento) e Serverless per Apache Spark. Sebbene entrambi i servizi offrano un ambiente Spark gestito, altamente scalabile, pronto per la produzione e sicuro, compatibile con OSS e con supporto completo per i formati di dati, queste due piattaforme differiscono fondamentalmente per il modo in cui l'infrastruttura sottostante viene gestita e fatturata.

Questo documento confronta Google Cloud Serverless per Apache Spark con Dataproc ed elenca le loro funzionalità e capacità per aiutarti a decidere la soluzione migliore per il workload Spark.

Confronta Serverless per Apache Spark con Dataproc

Se vuoi eseguire il provisioning e gestire l'infrastruttura ed eseguire carichi di lavoro su Spark e altri framework di elaborazione open source, utilizza Dataproc su Compute Engine. La seguente tabella elenca le principali differenze tra Dataproc su Compute Engine e Serverless per Apache Spark.

Capacità Serverless per Apache Spark Dataproc su Compute Engine
Framework di elaborazione Carichi di lavoro batch e sessioni interattive: Spark Spark. Altri framework open source, come Hive, Flink, Trino e Kafka
Serverless No
Tempi di avvio 50s 120 sec
Controllo dell'infrastruttura No
Gestione delle risorse Serverless YARN
Supporto GPU
Sessioni interattive No
Container personalizzati No
Accesso alla VM (SSH) No
Versioni di Java Java 17, 21 Java 17 e versioni precedenti

Scegliere il servizio Spark migliore

Questa sezione descrive i punti di forza principali e i casi d'uso primari di ciascun servizio per aiutarti a selezionare il servizio migliore per i tuoi carichi di lavoro Spark.

Panoramica

Dataproc e Serverless per Apache Spark differiscono per il grado di controllo, la gestione dell'infrastruttura e la modalità di fatturazione offerti.

  • Spark gestito da Dataproc:Dataproc offre cluster Spark come servizio, eseguendo Spark gestito sulla tua infrastruttura Compute Engine. Paghi per il tempo di attività del cluster.
  • Serverless per Apache Spark:Serverless per Apache Spark offre Spark-jobs-as-a-service, eseguendo Spark su un'infrastruttura Google Cloud completamente gestita. Paghi per il tempo di esecuzione del job.

A causa di queste differenze, ogni servizio è più adatto ai seguenti casi d'uso:

Servizio Casi d'uso
Dataproc Ambienti condivisi a esecuzione prolungata
Workload che richiedono un controllo granulare dell'infrastruttura
Migrazione di ambienti Hadoop e Spark legacy
Serverless per Apache Spark Diversi ambienti di lavoro dedicati
Workload batch pianificati
Gestione del codice con priorità rispetto alla gestione dell'infrastruttura

Differenze principali

Funzionalità Dataproc Serverless per Apache Spark
Modello di gestione Basato su cluster. Esegui il provisioning e gestisci i cluster. Ambiente di esecuzione serverless completamente gestito.
Controllo e personalizzazione Maggiore controllo sulla configurazione del cluster, sui tipi di macchina e sul software. Possibilità di utilizzare VM spot e riutilizzare le prenotazioni e la capacità delle risorse di Compute Engine. Adatto a carichi di lavoro che hanno una dipendenza da forme di VM specifiche, come le architetture della CPU. Minor controllo dell'infrastruttura, con particolare attenzione all'invio del codice e alla specifica dei parametri Spark.
Casi d'uso Cluster condivisi a esecuzione prolungata, migrazione di carichi di lavoro Hadoop e Spark esistenti con configurazioni personalizzate, carichi di lavoro che richiedono una personalizzazione approfondita. Query ad hoc, analisi interattive, nuove pipeline Spark e workload con esigenze di risorse imprevedibili.
Costi operativi Overhead più elevato che richiede gestione, scalabilità e manutenzione del cluster. Minori costi generali. Google Cloud Gestisce l'infrastruttura, lo scaling e il provisioning, consentendo un modello NoOps. Gemini Cloud Assist semplifica la risoluzione dei problemi, mentre l'ottimizzazione automatica di Serverless per Apache Spark contribuisce a fornire prestazioni ottimali.
Modello di efficienza Efficienza ottenuta condividendo i cluster tra job e team, con un modello multi-tenant. Nessun overhead di calcolo inattivo: allocazione delle risorse di calcolo solo quando il job è in esecuzione. Nessun costo di avvio e arresto. Sessioni interattive condivise supportate per una maggiore efficienza.
Controllo della posizione I cluster sono a livello di zona. La zona può essere selezionata automaticamente durante la creazione del cluster. Serverless per Apache Spark supporta i workload regionali senza costi aggiuntivi per fornire maggiore affidabilità e disponibilità.
Costo Viene addebitato il tempo di esecuzione del cluster, inclusi l'avvio e l'arresto, in base al numero di nodi. Include tariffa per la licenza Dataproc più il costo dell'infrastruttura. Viene fatturato solo per la durata dell'esecuzione del job Spark, esclusi l'avvio e l'arresto, in base alle risorse utilizzate. Fatturato come unità di calcolo dei dati (DCU) utilizzate e altri costi dell'infrastruttura.
Sconti per impegno di utilizzo (CUD) I CUD di Compute Engine si applicano a tutto l'utilizzo delle risorse. I CUD basati sulla spesa di BigQuery si applicano ai job Serverless per Apache Spark.
Controllo delle immagini e del runtime Gli utenti possono bloccare le versioni secondarie e secondarie secondarie delle immagini Dataproc. Gli utenti possono bloccare le versioni secondarie del runtime Serverless per Apache Spark; le versioni secondarie vengono gestite da Serverless per Apache Spark.
Gestione delle risorse YARN Serverless
Supporto GPU
Sessioni interattive No
Container personalizzati No
Accesso alla VM (SSH) No
Versioni di Java Versioni precedenti supportate Java 17, 21
Tempo di avvio 120s 50s

Quando scegliere Dataproc

Dataproc è un servizio gestito che puoi utilizzare per eseguire Apache Spark e altri framework di elaborazione dei dati open source. Offre un elevato grado di controllo e flessibilità, il che lo rende la scelta preferita nei seguenti scenari:

  • Migrazione dei carichi di lavoro Hadoop e Spark esistenti: supporta la migrazione dei cluster Hadoop o Spark on-premise a Google Cloud. Replica le configurazioni esistenti con modifiche minime al codice, in particolare quando utilizzi versioni precedenti di Spark.
  • Personalizzazione e controllo avanzati:consente di personalizzare i tipi di macchine del cluster, le dimensioni dei dischi e le configurazioni di rete. Questo livello di controllo è fondamentale per ottimizzare le prestazioni e l'utilizzo delle risorse per i job complessi e di lunga durata.
  • Cluster persistenti e a lunga esecuzione:supporta job Spark continui e a lunga esecuzione e cluster persistenti per più team e progetti.
  • Ecosistema open source diversificato:fornisce un ambiente unificato per eseguire pipeline di elaborazione dei dati che utilizzano strumenti dell'ecosistema Hadoop, come Hive, Pig o Presto, con i tuoi carichi di lavoro Spark.
  • Conformità alla sicurezza:consente il controllo dell'infrastruttura per soddisfare standard di sicurezza o conformità specifici, ad esempio la salvaguardia delle informazioni che consentono l'identificazione personale (PII) o dei dati sanitari protetti (PHI).
  • Flessibilità dell'infrastruttura:offre VM spot e la possibilità di riutilizzare le prenotazioni e la capacità delle risorse di Compute Engine per bilanciare l'utilizzo delle risorse e facilitare la tua strategia di infrastruttura cloud.

Quando scegliere Serverless per Apache Spark

Serverless per Apache Spark astrae le complessità della gestione dei cluster, consentendoti di concentrarti sul codice Spark. Ciò lo rende una scelta eccellente per l'utilizzo nei seguenti scenari di trattamento dei dati:

  • Analisi interattiva e ad hoc: per data scientist e analisti che eseguono query interattive e analisi esplorative utilizzando Spark, il modello serverless offre un modo rapido per iniziare senza concentrarsi sull'infrastruttura.
  • Applicazioni e pipeline basate su Spark:quando crei nuove pipeline o applicazioni di dati su Spark, Serverless per Apache Spark può accelerare notevolmente lo sviluppo rimuovendo l'overhead operativo della gestione dei cluster.
  • Workload con domanda sporadica o imprevedibile:per i job Spark intermittenti o con requisiti di risorse variabili, la scalabilità automatica e i prezzi pay-per-use (gli addebiti si applicano al consumo di risorse del job) di Serverless per Apache Spark possono ridurre significativamente i costi.
  • Focus sulla produttività degli sviluppatori:eliminando la necessità di provisioning e gestione dei cluster, Serverless per Apache Spark accelera la creazione della logica di business, fornisce insight più rapidi e aumenta la produttività.
  • Operazioni semplificate e overhead ridotto:la gestione dell'infrastruttura Serverless per Apache Spark riduce i costi e gli oneri operativi.

Riepilogo

La decisione di utilizzare Dataproc o Serverless per Apache Spark dipende dai requisiti del workload, dalle preferenze operative e dal livello di controllo preferito.

  • Scegli Dataproc quando hai bisogno del massimo controllo, devi migrare i workload Hadoop o Spark o hai bisogno di un ambiente cluster condiviso, personalizzato e persistente.
  • Scegli Serverless per Apache Spark per la facilità d'uso, l'efficienza dei costi per i workload intermittenti e la capacità di accelerare lo sviluppo di nuove applicazioni Spark rimuovendo il sovraccarico della gestione dell'infrastruttura.

Dopo aver valutato i fattori elencati in questa sezione, seleziona il servizio più efficiente ed economico per eseguire Spark e sfruttare tutto il potenziale dei tuoi dati.