Questo documento illustra le best practice di Dataproc che possono aiutarti a eseguire job di elaborazione dei dati affidabili, efficienti e utili sui cluster Dataproc negli ambienti di produzione.
Specifica le versioni delle immagini del cluster
Dataproc utilizza le versioni delle immagini per raggruppare il sistema operativo, i componenti big data e i connettori Google Cloud 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 imposta automaticamente la versione dell'immagine stabile più recente.
Per gli ambienti di produzione, associa il cluster a una versione dell'immagine major.minor
Dataproc specifica, 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 sub-minor più recente
(2.0
viene risolto in 2.0.x
). Nota: se devi fare affidamento su una versione sub-minor specifica per il tuo cluster,
puoi specificarla: ad esempio, --image-version=2.0.x
. Per maggiori informazioni, consulta Come funziona il controllo delle versioni.
Versioni immagine di anteprima di Dataproc
Le nuove versioni minori delle immagini Dataproc sono disponibili in una versione preview
precedente al rilascio nel canale di versione minore standard delle immagini. Utilizza un'immagine di anteprima per testare e convalidare i job in base a una nuova versione secondaria dell'immagine prima di adottare la versione secondaria standard in produzione.
Per ulteriori informazioni, consulta Controllo delle versioni di Dataproc.
Utilizza immagini personalizzate, se necessario
Se hai dipendenze da aggiungere al cluster, ad esempio librerie Python native o software di protezione da virus o rafforzamento della sicurezza, crea un'immagine personalizzata dall'immagine più recente nel canale 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 ricostruisci l'immagine personalizzata per aggiornare i requisiti delle dipendenze, utilizza la versione dell'immagine secondaria più recente disponibile nel canale delle immagini secondarie.
Invia job al servizio Dataproc
Invia job al servizio Dataproc con una chiamata jobs.submit utilizzando l'interfaccia a riga di comando gcloud o la console Google Cloud. Imposta le autorizzazioni per i job e i cluster concedendo 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
- Ruoli e autorizzazioni IAM facili da gestire
- Monitora facilmente lo stato dei job: nessun metadato dei job Dataproc per complicare i risultati.
In produzione, esegui job che dipendono solo dalle dipendenze a livello di cluster con una versione dell'immagine secondaria fissa (ad es. --image-version=2.0
). Raggruppa le dipendenze con i job quando vengono inviati. Inviare un uber jar a Spark o MapReduce è un modo comune per farlo.
- Esempio: se un file jar del job dipende da
args4j
espark-sql
, conargs4j
specifico per il job espark-sql
una dipendenza a livello di cluster, raggruppaargs4j
nel file jar uber 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. In questo modo, si evita di eseguire script di inizializzazione soggetti a modifiche da parte di altri.
Monitorare le note di rilascio di Dataproc
Dataproc rilascia regolarmente nuove versioni immagine secondarie. Visualizza o iscriviti alle note di rilascio di Dataproc per essere al corrente delle ultime release delle versioni immagine di Dataproc e di altri annunci, modifiche e correzioni.
Visualizza il bucket di staging per esaminare gli errori
Esamina il bucket di staging del cluster per esaminare i messaggi di errore del cluster e del job. In genere, la posizione del bucket di staging Cloud Storage 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 staging:
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 carichi di lavoro OSS di produzione e ti aiuta a soddisfare gli SLA della tua attività tramite livelli di assistenza. Inoltre, i servizi di consulenza di Google Cloud possono fornire indicazioni sulle best practice per gli implementazioni di produzione del tuo team.
Per ulteriori informazioni
Leggi la guida alle best practice di Dataproc del blog Google Cloud.
Guarda Democratizing Dataproc su YouTube.