Best practice di Dataproc per la produzione

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.

Specifica le versioni dell'immagine 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 utilizza per impostazione predefinita la versione dell'immagine stabile più recente.

Per gli ambienti di produzione, associa il cluster a una versione specifica 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 nella versione secondaria più recente (2.0 viene risolto 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 ulteriori informazioni, consulta la sezione 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 track della versione secondaria standard dell'immagine. Utilizza un'immagine di anteprima per testare e convalidare i tuoi job rispetto a una nuova versione secondaria dell'immagine prima di adottare la versione secondaria standard dell'immagine in produzione. Per saperne di più, consulta la sezione 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 da virus o rafforzamento della sicurezza, crea un'immagine personalizzata dall'ultima immagine nella traccia della versione dell'immagine secondaria di destinazione. Questa pratica ti consente di soddisfare i requisiti di dipendenza quando crei cluster utilizzando la tua immagine personalizzata. Quando ricompili l'immagine personalizzata per aggiornare i requisiti delle dipendenze, utilizza l'ultima versione secondaria disponibile dell'immagine all'interno della traccia dell'immagine secondaria.

Inviare job al servizio Dataproc

Invia i job al servizio Dataproc con una chiamata jobs.submit utilizzando gcloud CLI o la console Google Cloud . Imposta le autorizzazioni per job e cluster concedendo ruoli Dataproc. Utilizza 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
  • Monitora facilmente lo stato del job, senza metadati del job Dataproc che complicano i risultati.

In produzione, esegui job che dipendono solo da dipendenze a livello di cluster a una versione di 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 file 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 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 di 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.

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 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

  1. Esamina il bucket di staging del cluster per analizzare i messaggi di errore del cluster e del job. In genere, la posizione del bucket di staging Cloud Storage 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
     

  2. Utilizza gcloud CLI per visualizzare i contenuti del bucket di staging:

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

Assistenza

Google Cloud supporta i tuoi carichi di lavoro OSS di produzione e ti aiuta a rispettare i tuoi SLA aziendali tramite livelli di assistenza. Inoltre, Google Cloud Consulting Services può fornire indicazioni sulle best practice per i deployment di produzione del tuo team.

Per ulteriori informazioni