Questo documento illustra le best practice di Dataproc che possono aiutarti a eseguire job di elaborazione dei dati affidabili, efficienti e approfonditi sui cluster Dataproc negli ambienti di produzione.
Specificare le versioni delle immagini del cluster
Dataproc utilizza le versioni delle immagini per raggruppare il sistema operativo, i componenti big data e, i Google Cloud connettori in un pacchetto di cui viene eseguito il deployment in un cluster. Se non specifichi una versione dell'immagine durante la creazione di un cluster, Dataproc utilizza per impostazione predefinita la versione dell'immagine stabile più recente.
Per gli ambienti di produzione, associa il cluster a una versione dell'immagine Dataproc specifica
major.minor, 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 per
maggiori informazioni.
Versioni delle immagini di anteprima di Dataproc
Le nuove versioni secondarie delle immagini Dataproc
sono disponibili in una versione preview prima del rilascio
nella traccia della versione dell'immagine secondaria standard. Utilizza un'immagine di anteprima
per testare e convalidare i job rispetto a una nuova versione dell'immagine secondaria
prima di adottare la versione dell'immagine secondaria standard in produzione.
Per saperne di più, consulta Controllo delle versioni di Dataproc.
Utilizzare immagini personalizzate, se necessario
Se devi aggiungere dipendenze al cluster, ad esempio librerie Python native o software di protezione da virus o di rafforzamento della sicurezza, crea un'immagine personalizzata dall'immagine più recente nella traccia della versione dell'immagine secondaria di destinazione. Questa pratica ti consente di soddisfare i requisiti di dipendenza quando crei cluster utilizzando l'immagine personalizzata. Quando ricompili l'immagine personalizzata per aggiornare i requisiti di dipendenza, utilizza la versione dell'immagine secondaria più recente disponibile nella traccia dell'immagine secondaria.
Inviare job al servizio Dataproc
Invia i job al servizio Dataproc con una jobs.submit utilizzando la gcloud CLI o la Google Cloud console. Imposta le autorizzazioni di job e cluster concedendo i ruoli Dataproc. Utilizza i ruoli personalizzati per separare l'accesso al cluster dalle autorizzazioni di invio dei job.
Vantaggi dell'invio di job al servizio Dataproc:
- Non sono necessarie impostazioni di rete complicate: l'API è ampiamente raggiungibile
- Facile gestione di ruoli e autorizzazioni IAM
- Monitoraggio semplice dello stato dei job: nessun metadato dei job Dataproc per complicare i risultati.
In produzione, esegui i job che dipendono solo dalle dipendenze a livello di cluster
a una versione dell'immagine secondaria fissa, ad esempio --image-version=2.0. Raggruppa le
dipendenze con i job quando vengono inviati. L'invio
di un uber jar a
Spark o MapReduce è un modo comune per farlo.
- Esempio: se un jar di job dipende da
args4jespark-sql, conargs4jspecifico per il job espark-sqluna dipendenza a livello di cluster, raggruppaargs4jnell'uber jar del job.
Controllare le posizioni delle azioni di inizializzazione
Le azioni di inizializzazione ti consentono di eseguire automaticamente script o installare componenti quando crei un cluster Dataproc (consulta il repository GitHub dataproc-initialization-actions per le azioni di inizializzazione Dataproc comuni). 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. Questa pratica evita l'esecuzione di script di inizializzazione soggetti a modifiche da parte di altri utenti.
Monitorare le note di rilascio di Dataproc
Dataproc rilascia regolarmente nuove versioni secondarie delle immagini. Visualizza o iscriviti alle note di rilascio di Dataproc per essere a conoscenza delle ultime release delle versioni delle immagini Dataproc e di altri annunci, modifiche e correzioni.
Visualizzare il bucket di gestione temporanea per indagare sugli errori
Esamina il bucket di gestione temporanea del cluster per indagare sui messaggi di errore di cluster e job. In genere, la posizione di Cloud Storage del bucket di gestione temporanea viene visualizzata 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 workload OSS di produzione e ti aiuta a rispettare gli SLA aziendali tramite livelli di assistenza. Inoltre, Google Cloud i Servizi di consulenza possono fornire indicazioni sulle best practice per i deployment di produzione del tuo team.
Per ulteriori informazioni
Leggi la guida alle best practice di Dataproc sul Google Cloud blog .
Guarda Democratizing Dataproc su YouTube.