Best practice di Dataproc per la produzione

Questo documento illustra le best practice di Dataproc che possono aiutarti a eseguire job di elaborazione dati affidabili, efficienti e approfonditi sui cluster Dataproc in ambienti di produzione.

Specifica le versioni delle immagini del cluster

Dataproc utilizza le versioni immagine per raggruppare il sistema operativo, i componenti di big data e i connettori Google Cloud in un pacchetto di cui viene eseguito il deployment in un cluster. Se non specifichi una versione 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 specifica versione dell'immagine major.minor Dataproc, 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 all'ultima versione secondaria secondaria (2.0 è risolto in 2.0.x). Nota: se devi fare affidamento su una versione secondaria secondaria per il tuo cluster, puoi specificarla: ad esempio, --image-version=2.0.x. Per ulteriori informazioni, consulta Come funziona il controllo delle versioni.

Versioni immagine di anteprima di Dataproc

Le nuove versioni secondarie delle immagini Dataproc sono disponibili in una versione preview prima del rilascio nel canale della versione delle immagini secondarie standard. Utilizza un'immagine di anteprima per testare e convalidare i tuoi job rispetto a una nuova versione dell'immagine secondaria prima di adottare la versione standard dell'immagine secondaria in produzione. Per ulteriori informazioni, consulta Controllo delle versioni di Dataproc.

Utilizzare immagini personalizzate quando necessario

Se devi aggiungere dipendenze al cluster, ad esempio librerie Python native o software di protezione della sicurezza o protezione antivirus, crea un'immagine personalizzata dall'immagine più recente nel canale della versione dell'immagine secondaria di destinazione. In questo modo puoi soddisfare i requisiti di dipendenza quando crei cluster utilizzando l'immagine personalizzata. Quando ricrei l'immagine personalizzata per aggiornare i requisiti di dipendenza, utilizza la versione più recente dell'immagine sub-minore disponibile nel canale dell'immagine secondaria.

Invio di job al servizio Dataproc

Invia job al servizio Dataproc con una chiamata jobs.submit utilizzando gcloud CLI o la console Google Cloud. 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 complesse: l'API è ampiamente raggiungibile
  • Autorizzazioni e ruoli IAM facili da gestire
  • Monitora facilmente lo stato del job: non ci sono metadati del job di Dataproc che complichi i risultati.

In produzione, esegui job che dipendono solo dalle dipendenze a livello di cluster in una versione fissa dell'immagine secondaria (ad esempio --image-version=2.0). Raggruppa le dipendenze con i job quando i job vengono inviati. Un modo comune per farlo è inviare un uber jar a Spark o MapReduce.

  • Esempio: se un jar del job dipende da args4j e spark-sql, con args4j specifico per il job e spark-sql una dipendenza a livello di cluster, raggruppa args4j nell'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 Dataproc (consulta il repository dataproc-initialization-actions di GitHub per le azioni di inizializzazione comuni di Dataproc). Quando utilizzi azioni di inizializzazione del cluster in un ambiente di produzione, copia gli script di inizializzazione in Cloud Storage invece di acquisirli da un repository pubblico. Questa pratica evita di eseguire script di inizializzazione soggetti a modifiche da parte di altri.

Monitoraggio delle note di rilascio di Dataproc

Dataproc rilascia regolarmente nuove versioni di immagini secondarie. Visualizza o abbonati alle note di rilascio di Dataproc per conoscere le ultime release della versione delle immagini Dataproc e altri annunci, modifiche e correzioni.

Visualizza il bucket gestione temporanea per esaminare gli errori

  1. Esamina il bucket gestione temporanea del tuo cluster per esaminare i messaggi di errore del cluster e del job. In genere, la località di Cloud Storage del bucket gestione temporanea viene visualizzata nei messaggi di errore, come mostrato 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
     

  2. Utilizza gsutil per visualizzare i contenuti del bucket gestione temporanea:

    gsutil cat gs://STAGING_BUCKET
    
    Esempio di output:
    + readonly RANGER_VERSION=1.2.0
    ... Ranger admin password not set. Please use metadata flag - default-password
    

Ricevi assistenza

Google Cloud supporta i carichi di lavoro OSS di produzione e ti aiuta a rispettare gli SLA (accordi sul livello del servizio) 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 maggiori informazioni