Questo documento illustra le best practice di Managed Service for Apache Spark che possono aiutarti a eseguire job di trattamento dati affidabili, efficienti e approfonditi sui cluster Managed Service for Apache Spark negli ambienti di produzione.
Specifica le versioni immagine del cluster
Managed Service for Apache Spark utilizza le versioni immagine per raggruppare il sistema operativo, i componenti big data e i connettori Google Cloud in un pacchetto di cui viene eseguito il deployment su un cluster. Se non specifichi una versione immagine durante la creazione di un cluster, Managed Service for Apache Spark utilizza per impostazione predefinita la versione immagine stabile più recente.
Per gli ambienti di produzione, associa il cluster a una versione specifica dell'immagine major.minor Managed Service for Apache Spark, come mostrato nel seguente comando gcloud CLI.
gcloud dataproc clusters create CLUSTER_NAME \ --region=region \ --image-version=2.0
Dataproc risolve la versione major.minor nella versione secondaria più recente (2.0 viene risolta in 2.0.x). Nota: se devi fare affidamento su una versione secondaria specifica per il tuo cluster, puoi specificarla: ad esempio, --image-version=2.0.x. Per saperne di più, consulta Come funziona il controllo delle versioni.
Versioni immagine in anteprima di Managed Service for Apache Spark
Le nuove versioni secondarie delle immagini di Managed Service for Apache Spark sono disponibili in una versione preview prima del rilascio nel canale della versione immagine secondaria standard. Utilizza un'immagine di anteprima per testare e convalidare i job con una nuova versione immagine secondaria prima di adottare la versione immagine secondaria standard in produzione.
Per saperne di più, consulta Controllo delle versioni di Managed Service for Apache Spark.
Utilizza immagini personalizzate quando necessario
Se hai dipendenze da aggiungere al cluster, ad esempio librerie Python native o software di protezione antivirus o di rafforzamento della sicurezza, crea un'immagine personalizzata dall'immagine più recente nel track della versione immagine secondaria di destinazione. Questa pratica ti consente di soddisfare i requisiti di dipendenza quando crei cluster utilizzando l'immagine personalizzata. Quando ricrei l'immagine personalizzata per aggiornare i requisiti delle dipendenze, utilizza l'ultima versione secondaria dell'immagine disponibile all'interno del track dell'immagine secondaria.
Invia job a Managed Service for Apache Spark
Invia i job a Managed Service for Apache Spark con una chiamata jobs.submit utilizzando gcloud CLI o la console Google Cloud . Imposta le autorizzazioni per job e cluster concedendo i ruoli di Managed Service for Apache Spark. Utilizza i ruoli personalizzati per separare l'accesso al cluster dalle autorizzazioni di invio dei job.
Vantaggi dell'invio di job a Managed Service for Apache Spark:
- Non sono necessarie impostazioni di rete complicate: l'API è ampiamente raggiungibile
- Ruoli e autorizzazioni IAM facili da gestire
- Monitora facilmente lo stato dei job: nessun metadato dei job di Managed Service for Apache Spark complica i risultati.
In produzione, esegui i job che dipendono solo dalle dipendenze a livello di cluster in una versione immagine secondaria fissa (ad esempio, --image-version=2.0). Raggruppa le dipendenze con i job quando questi vengono inviati. L'invio di un uber jar a Spark o MapReduce è un modo comune per farlo.
- Esempio: se un file JAR del job dipende da
args4jespark-sql, conargs4jspecifico per il job espark-sqluna dipendenza a livello di cluster, raggruppaargs4jnell'uber JAR del job.
Controlla le località delle azioni di inizializzazione
Le azioni di inizializzazione consentono di eseguire automaticamente script o installare componenti quando crei un cluster Managed Service for Apache Spark (consulta il repository GitHub dataproc-initialization-actions per le azioni di inizializzazione comuni di Managed Service for Apache Spark). Quando utilizzi le azioni di inizializzazione del cluster in un ambiente di produzione, copia gli script di inizializzazione in Cloud Storage anziché recuperarli da un repository pubblico. In questo modo eviti di eseguire script di inizializzazione che potrebbero essere modificati da altri.
Monitora le note di rilascio di Managed Service for Apache Spark
Managed Service for Apache Spark rilascia regolarmente nuove versioni secondarie delle immagini. Visualizza o iscriviti alle note di rilascio di Managed Service for Apache Spark per conoscere le ultime versioni delle immagini di Managed Service for Apache Spark e altri annunci, modifiche e correzioni.
Visualizza il bucket di gestione temporanea per esaminare gli errori
Esamina il bucket di gestione temporanea del cluster per analizzare i messaggi di errore del cluster e dei job. In genere, la posizione di Cloud Storage del bucket di gestione temporanea viene mostrata nei messaggi di errore, come mostrato nel testo in grassetto nel seguente messaggio di errore di esempio:
ERROR: (gcloud.dataproc.clusters.create) Operation ... failed: ... - Initialization action failed. Failed action ... see output in: gs://dataproc-<BUCKETID>-us-central1/google-cloud-dataproc-metainfo/CLUSTERID/<CLUSTER_ID>\dataproc-initialization-script-0_output
Utilizza gcloud CLI per visualizzare i contenuti del bucket di gestione temporanea:
Esempio di output:gcloud storage cat gs://STAGING_BUCKET
+ readonly RANGER_VERSION=1.2.0 ... Ranger admin password not set. Please use metadata flag - default-password
Assistenza
Google Cloud supporta i tuoi workload OSS di produzione e ti aiuta a soddisfare i tuoi SLA aziendali tramite livelli di assistenza. Inoltre, i servizi di consulenza di Google Cloud possono fornire indicazioni sulle best practice per i deployment di produzione del tuo team.
Per ulteriori informazioni
Leggi il Google Cloud blog Guida alle best practice di Managed Service for Apache Spark.
Guarda Democratizing Managed Service for Apache Spark su YouTube.