Best practice di Dataproc per la produzione

Questo documento illustra le best practice di Dataproc che possono aiutarti job di elaborazione dati affidabili, efficienti e approfonditi su di cluster Dataproc in 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 un major.minor versione immagine Dataproc, come come mostrato nel seguente comando gcloud CLId.

gcloud dataproc clusters create CLUSTER_NAME \
    --region=region \
    --image-version=2.0

Dataproc risolve la versione major.minor all'ultima versione secondaria inferiore (2.0 è stato risolto in 2.0.x). Nota: se devi fare affidamento su una versione secondaria specifica per il tuo cluster, puoi specificarlo: ad esempio, --image-version=2.0.x. Consulta Come funziona il controllo delle versioni per ulteriori informazioni.

Versioni immagine di anteprima di Dataproc

Nuove versioni secondarie di Dataproc le immagini sono disponibili in una versione preview prima del rilascio nella traccia della versione dell'immagine secondaria standard. Utilizzare un'immagine di anteprima per testare e convalidare i tuoi job rispetto a una nuova versione immagine secondaria prima di adottare la versione standard dell'immagine secondaria in produzione. Per saperne di più, consulta Controllo delle versioni di Dataproc.

Utilizza immagini personalizzate quando 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 le funzionalità di ruoli personalizzati per separare l'accesso al cluster dalle autorizzazioni di invio dei job.

Vantaggi dell'invio dei 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 dal livello di cluster di dipendenze in una versione immagine secondaria fissa (ad esempio --image-version=2.0). Pacchetto 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 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

Azioni di inizializzazione di eseguire automaticamente script o installare quando crei un cluster Dataproc (vedi i dataproc-initialization-actions repository GitHub per azioni comuni di inizializzazione di Dataproc). Quando utilizzi azioni di inizializzazione del cluster in un ambiente copia gli script di inizializzazione in Cloud Storage anziché reperirli da un repository pubblico. Questa pratica evita di correre script di inizializzazione soggetti a modifiche da parte di altri utenti.

Monitora 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

  1. Osserva l'andamento del cluster bucket gestione temporanea per esaminare i messaggi di errore relativi a cluster e job. In genere, la località di Cloud Storage del bucket gestione temporanea è mostrata in di errore, come mostrato in grassetto nel seguente errore di esempio messaggio:

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