Migrazione di job Hadoop da on-premise a Dataproc

Last reviewed 2024-04-17 UTC

Questa guida descrive come spostare i tuoi job Apache Hadoop in Google Cloud (Google Cloud) mediante Dataproc.

Questa è la terza delle tre guide che descrivono come passare da Hadoop on-premise:

Esecuzione di job Hadoop su Google Cloud

Puoi usare Dataproc per eseguire la maggior parte dei tuoi job Hadoop in Google Cloud. Il seguente elenco riassume la procedura di base:

  1. Aggiorna il job in modo che punti ai dati permanenti archiviati in Cloud Storage.

  2. Creare un cluster Dataproc su cui eseguire il job. Questo un tipo di cluster temporaneo a uso singolo è chiamato temporaneo in un cluster Kubernetes.

  3. Invia il tuo job al cluster temporaneo.

  4. Facoltativamente, monitora i log del job utilizzando Cloud Logging o di archiviazione ideale in Cloud Storage. I log vengono acquisiti in Cloud Storage per impostazione predefinita utilizzando il bucket gestione temporanea specificato al momento della creazione del cluster.

  5. Controlla l'output del job su Cloud Storage.

  6. Al termine del job, elimina il cluster.

Job supportati

Dataproc esegue Hadoop, per cui sono supportati molti tipi di job automaticamente. Quando crei un cluster con Dataproc, le seguenti tecnologie sono configurate per impostazione predefinita:

  • Hadoop
  • Spark
  • Hive
  • Pig

Dataproc offre diverse più versioni delle immagini macchina con diverse versioni di software open source preinstallate. Puoi eseguire molte con il software preconfigurato su un'immagine. Per alcuni lavori, potresti per installare altri pacchetti. Dataproc offre un meccanismo chiamata azioni di inizializzazione, che ti permette di personalizzare il software in esecuzione sui nodi in un cluster Kubernetes. Puoi utilizzare le azioni di inizializzazione per creare script che vengono eseguiti al momento della creazione.

Aggiornamento delle località dei dati (URI)

Connettore Cloud Storage, preinstallato sui nodi dei cluster Dataproc, consente per utilizzare Cloud Storage come file system compatibile con Hadoop (HCFS). Archivia i dati in Cloud Storage per sfruttare i vantaggi di rete. In questo caso, l'unica modifica necessaria ai job sarà l'aggiornamento URI in sostituzione di hdfs:// con gs://.

Se riorganizzi i dati come parte della migrazione, prendi nota di tutte le origini e di destinazione, in modo da poter aggiornare facilmente i job in modo che funzionino con il nuovo dell'organizzazione dei dati.

È possibile archiviare i dati in HDFS in cluster permanenti nel Cloud, ma questa soluzione è sconsigliata. Puoi scoprire di più su come spostare nella guida alla migrazione dei dati.

Configurazione dei cluster per l'esecuzione dei job

Nell'approccio consigliato per eseguire i tuoi job su Google Cloud, crei di cluster temporanei quando ne hai bisogno ed eliminali quando i tuoi job completato. Questo approccio ti offre molta flessibilità nella configurazione cluster. Puoi utilizzare una configurazione diversa per ogni job, oppure crearne diverse configurazioni di cluster standard che gestiscono gruppi di job.

Puoi trovare passaggi di base per la creazione di cluster nella documentazione di Dataproc. Il resto di questa sezione descrive alcune delle importanti considerazioni sulla configurazione del cluster per aiutarti decidere come procedere.

Dimensionamento del cluster

La prima cosa da fare per definire un nuovo cluster è decidere quale hardware da utilizzare. Può essere difficile calcolare l'ammasso perfetto perché ogni job ha le sue esigenze e particolarità particolari. Prova diverse configurazioni per trovare quella giusta per il tuo job.

Quando configuri un cluster, devi determinare almeno:

  • Numero di nodi da utilizzare.
  • Il tipo di macchina virtuale da utilizzare per il nodo primario (master).
  • Il tipo di macchina virtuale da utilizzare per i nodi worker.

I tipi di nodo sono definiti dal numero di CPU virtuali e dalla quantità di memoria che ha a disposizione. Le definizioni corrispondono al Compute Engine tipi di macchina. Di solito è possibile trovare un tipo di nodo che corrisponde alla configurazione dai nodi on-premise da cui esegui la migrazione. Puoi utilizzare questa equivalenza come iniziale, configurando un cluster simile a quello on-premise. A questo punto, l'approccio migliore è modificare la configurazione e monitorare l'effetto sull'esecuzione del job. Quando inizi a ottimizzare la configurazione di lavoro, inizierai a farti un'idea di come approcciarti ad altri lavori nel tuo di un sistema operativo completo.

Tieni presente che puoi scalare il cluster in base alle esigenze, quindi non è necessario specifiche perfette fin dall'inizio.

Scelta delle opzioni del disco primario

Puoi specificare la dimensione del disco primario utilizzato dai nodi worker. La le opzioni giuste per un cluster dipendono dai tipi di job su cui eseguirai li annotino. Utilizza il valore predefinito e valuta i risultati, a meno che tu non sappia che richiedono richieste insolite nell'utilizzo del disco primario.

Se il job prevede un uso intensivo del disco e viene eseguito lentamente su singoli nodi, aggiungere più spazio su disco primario. Per i job che richiedono un uso intensivo dei dischi, soprattutto quelle con molte operazioni individuali di lettura e scrittura, in grado di migliorare il funzionamento aggiungendo SSD locali. Aggiungi un numero sufficiente di SSD per contenere tutti dello spazio necessario per l'esecuzione locale. Le directory di esecuzione locali sono distribuiti su tutte le unità SSD che aggiungi.

Utilizzo di nodi worker prerilasciabili

Puoi ottenere potenza di elaborazione a basso costo per i tuoi job aggiungendo di nodi worker prerilasciabili al tuo cluster. Questi nodi utilizzano macchine virtuali prerilasciabili.

Consideriamo l'inaffidabilità intrinseca dei nodi prerilasciabili che scelgono di utilizzarli. Dataproc tenta di gestire senza problemi prerilascio, ma i job potrebbero non riuscire se perdono troppi nodi. Usa solo nodi prerilasciabili per job a tolleranza di errore o sufficientemente bassi è la priorità che un errore occasionale del job non interrompa l'attività.

Se decidi di utilizzare nodi worker prerilasciabili, valuta il rapporto tra da nodi a nodi prerilasciabili. Non esiste una formula universale per ottenere ma, in generale, più i nodi prerilasciabili utilizzi rispetto nodi, maggiori sono le probabilità che il job non abbia abbastanza nodi per per completare l'attività. È possibile determinare il miglior rapporto tra annunci prerilasciabili e nodi per un job sperimentando rapporti diversi e analizzando i risultati.

Tieni presente che le unità SSD non sono disponibili sui nodi worker prerilasciabili. Se usi le unità SSD sui tuoi nodi dedicati, tutti i nodi worker prerilasciabili che utilizzi ogni altro aspetto dei nodi dedicati, ma non avranno SSD disponibili.

Job in esecuzione

Dataproc offre diverse interfacce da usare per avviare i tuoi lavori, che sono descritto nella documentazione del prodotto. Questa sezione descrive le opzioni e le operazioni da considerare durante l'esecuzione Job Hadoop su Google Cloud.

Recupero dell'output del job

I job eseguiti su Dataproc di solito hanno diversi tipi di output. Il tuo job potrebbe scrivere direttamente molti tipi di output, ad esempio in file in un bucket Cloud Storage o in un altro prodotto cloud, in BigQuery. Dataproc raccoglie anche log e console e li inserisce nel bucket Cloud Storage bucket gestione temporanea associato al cluster su cui esegui il job.

Utilizzo di job riavviabili

Quando invii un'offerta di lavoro, puoi per configurare il riavvio automatico in caso di problemi. Questa opzione è utile per i job che si basano su risorse o circostanze estremamente variabili. Ad esempio, job che trasmettono dati in streaming su canali potenzialmente inaffidabili (come la rete internet pubblica) particolarmente soggetta a errori casuali dovuti a errori di timeout e a reti simili che le applicazioni presentino problemi di prestazioni. Esegui job riavviabili se riesci a immaginare situazioni in cui il job non riuscirà, ma verrà eseguito poco tempo dopo.

Scalabilità del cluster

Dataproc semplifica l'aggiunta o la rimozione dei nodi per il cluster in qualsiasi momento, anche mentre il job è in esecuzione. Dataproc la documentazione include istruzioni dettagliate per la scalabilità del tuo cluster. La scalabilità include l'opzione per il ritiro controllato dei nodi. Con questo i nodi che verranno eliminati hanno il tempo di essere completati in fase di elaborazione.

Gestione dei job nel tempo

Gestire i singoli job non è di solito complesso, ma un sistema Hadoop può includere decine o centinaia di lavori. Nel tempo, il numero di log, l'output e altre informazioni associate a ciascun lavoro proliferano, cosa che può rendono difficile trovare le singole informazioni. Ecco alcuni esempi cose che puoi fare per semplificare la gestione dei tuoi lavori per il futuro:

  • Utilizza le etichette personalizzate per identificare i job, cluster e altre risorse. Le etichette semplificano l'uso di un filtro per trovare risorse in un secondo momento. Dataproc supporta le etichette personalizzate utilizzando Sistema di etichettatura di Google Cloud, in modo che l'etichettatura di una risorsa possa essere utile per gestire la risorsa in altri servizi Google Cloud.
  • Organizza i tuoi bucket Cloud Storage in modo da conservare diversi tipi di job separate. Raggruppare i dati in bucket corrispondenti struttura aziendale o aree funzionali possono inoltre semplificare la gestione autorizzazioni aggiuntive.
  • Definisci cluster per singoli job o per gruppi di job strettamente correlati. È molto più facile aggiornare la configurazione dei cluster temporanei se e usare ciascuna configurazione solo per job con ambito adeguato.

Passaggi successivi