2011-10-19 20 views
12

Sono nuovo in hadoop quindi ho dei dubbi. Se il master-nodo fallisce cosa è successo al cluster hadoop? Possiamo recuperare quel nodo senza alcuna perdita? È possibile mantenere un nodo master secondario per passare automaticamente al master quando quello corrente ha esito negativo?Datanode Hadoop, namenode, secondario-namenode, job-tracker e task-tracker

Abbiamo il backup del namenode (Namenode secondario), in modo che possiamo ripristinare il namenode da Namenode secondario quando non riesce. In questo modo, come possiamo ripristinare i dati nel datanode quando il datanode fallisce? Il namenode secondario è il backup del solo namenode e non del datenode, giusto? Se un nodo è fallito prima del completamento di un lavoro, quindi c'è job in sospeso nel job tracker, quel lavoro continua o si riavvia dal primo nel nodo libero?

Come possiamo ripristinare i dati dell'intero cluster se succede qualcosa?

E la mia ultima domanda, possiamo usare il programma C in Mapreduce (ad esempio, Bubble sort in mapreduce)?

Grazie in anticipo

risposta

14

Attualmente grappolo hadoop ha un singolo punto di errore che è NameNode.

E sulla isssue nodo secondario (da apache wiki):

Il termine "secondaria nome-nodo" è un po 'fuorviante. Non è un nodo di nome nel senso che i nodi di dati non possono connettersi al nodo di nome secondario e in nessun caso può sostituire il nodo di nome primario nel suo caso .

L'unico scopo del nodo nome secondario è eseguire punti di controllo periodici . Il nodo nome secondario scarica periodicamente l'immagine del nodo del nome e modifica i file di registro, li unisce in una nuova immagine e carica la nuova immagine sul nodo del nome (primario e solo). Vedere la Guida per l'utente.

Quindi, se il nome del nodo non riesce ed è possibile riavviare sullo stesso nodo fisico allora non c'è bisogno di arresto di dati-nodi, solo il nome nodo bisogno di essere riavviato. Se non è più possibile utilizzare il vecchio nodo, sarà necessario copiare nell'ultima immagine da qualche altra parte. L'ultima immagine può essere trovata sul nodo che era il primario prima dell'errore se disponibile; o sul nodo del nome secondario. Quest'ultimo sarà l'ultimo checkpoint senza i successivi registri delle modifiche, ovvero la maggior parte delle modifiche allo spazio nome potrebbe mancare lì. In questo caso sarà anche necessario riavviare l'intero cluster.

Ci sono modi complicati per superare questo singolo punto di errore. Se si utilizza la distribuzione cloudera, uno dei modi spiegati è here. La distribuzione Mapr ha un different way da gestire in questo spof.

Infine, è possibile utilizzare ogni singola lingua di programmazione per scrivere la riduzione della mappa su hadoop streaming.

+5

Un sacco di persone chiamano il nodo secondario "il nodo di controllo" ora, che è una buona cosa. –

+0

Qualsiasi linguaggio di programmazione che può leggere/scrivere su STDIN/STDOUT può essere utilizzato con Hadoop Streaming. Ci sono un paio di [framework] (http://goo.gl/aaVYN) che rendono più facile lo streaming Hadoop. –

21

Anche se, è troppo tardi per rispondere alla tua domanda ma solo può aiutare gli altri ..

Prima di tutto Lascia che ti presenti con nome secondario Nodo:

Esso contiene l'immagine spazio dei nomi, Registro modifiche di file per oltre una ora (configurabile). E il suo compito è quello di unire l'ultimo Name Node NameSpaceImage e modificare i file di log per caricare di nuovo il Nodo Nome come sostituzione di quello vecchio. Per avere un NN secondario in un cluster non è obbligatorio .

Ora venendo alle vostre preoccupazioni ..

  • Se il master-nodo non riesce quello che è successo il cluster Hadoop?

Sostenere la risposta di Frail, Sì Hadoop ha singolo punto di guasto in modo tutto il vostro compito attualmente in esecuzione come Map-Reduce o qualsiasi altro che sta usando il nodo principale non è riuscito si fermerà. L'intero cluster incluso il client smetterà di funzionare.

  • Possiamo recuperare quel nodo senza alcuna perdita?

Questo è ipotetica, Senza perdita è meno possibile, come tutti i dati (relazioni blocco) verranno persi, che ha inviato da nodi di dati per Nome nodo dopo l'ultimo backup presa da nodo del nome secondario. Perché ho menzionato lo minimo, perché se il nodo del nome fallisce subito dopo il successo del backup, eseguire dal nodo del nome secondario, quindi è in stato di sicurezza.

  • E 'possibile mantenere un master-nodo secondario per passare automaticamente al master quando quella attuale non riesce?

È staright possibile da un amministratore (Utente). E per cambiare automaticamente il codice devi scrivere un codice nativo dal cluster, Codice per moniterizzare il cluster che cofigurerà il nodo del nome secondario in modo intelligente e riavviare il cluster con il nuovo indirizzo del nodo del nome.

  • Abbiamo il backup del NameNode (NameNode Secondario), in modo che possiamo ripristinare il NameNode da NameNode secondaria quando non riesce. In questo modo, come possiamo ripristinare i dati nel datanode quando il datanode fallisce?

Si tratta di replication factor, abbiamo 3 (di default come best practice, configurabile) repliche di ciascun blocco di file tutto in diversi nodi di dati. Quindi in caso di errore per ora abbiamo 2 nodi di dati di backup. Il nodo Nome successivo creerà un'altra replica dei dati che non è riuscita a contenere il nodo dati .

  • NameNode secondario è il backup di NameNode solo di non datenode, giusto?

destro. Contiene solo tutti i metadati dei nodi di dati come l'indirizzo del nodo di dati , incluse le segnalazioni di blocco di ciascun nodo di dati.

  • Se un nodo è fallito prima del completamento di un lavoro, quindi non c'è lavoro in attesa di Job Tracker, è che il lavoro continui o riavviare dal primo nel nodo libera?

HDFS sarà forcely cercare di continuare il lavoro. Ma ancora dipende dal fattore di replicazione , rack awareness e other configuration effettuato da admin . Ma se si seguono le migliori pratiche di Hadoop su HDFS, allora lo non verrà risolto. JobTracker riceverà l'indirizzo del nodo replicato su continente.

  • Come possiamo ripristinare tutti i dati del cluster se succede qualcosa?

riavviando esso.

  • E la mia domanda finale, possiamo usare il programma C in MapReduce (ad esempio, bubble sort in MapReduce)?

Sì, è possibile utilizzare qualsiasi linguaggio di programmazione che supporta file di operazioni di lettura e scrittura di serie.

Ho appena provato. Spero che ti possa aiutare così come gli altri.

* Suggerimenti/miglioramenti sono i benvenuti. *

+2

spiegazione molto bella e chiara. Sembra che tu sia un architetto Hadoop e stai lavorando su hadoop da molto tempo. –

+0

Grazie a @PramodKumar, basta impararlo. :) – manurajhada

0

Anche se, è troppo tardi per rispondere alla tua domanda ma solo potrebbe aiutare gli altri..in primo luogo discuteremo il ruolo di Hadoop 1.X demoni e poi i vostri problemi ..

1. Qual è il ruolo del nome secondario nodo non è esattamente un nodo di backup. legge un registro di modifica e crea file fsimage aggiornati per il nodo del nome periodicamente. ottiene periodicamente i metadati dal nodo del nome e lo mantiene e lo utilizza quando il nodo del nome fallisce. 2. qual è il ruolo del nome nodo è il responsabile di tutti i daemon. il suo master jvm proceess che gira al nodo principale. interagisce con i nodi dati.

3. qual è il ruolo di Job Tracker accetta il lavoro e lo distribuisce ai tracker di attività per l'elaborazione nei nodi di dati. la sua chiamata come mappa processo

4. qual è il ruolo di inseguitori compito eseguirà programma previsto elaborazione sui dati esistenti al nodo dati. quel processo è chiamato come mappa.

limitazioni di hadoop 1.X

  1. singolo punto di errore che è il nodo nome in modo da poter mantenere hardware di alta qualità per il nodo nome. se il nodo nome non tutto sarà inaccessibile

Solutions soluzione a singolo punto di errore è Hadoop 2.X che fornisce alta disponibilità.

high availability with hadoop 2.X

ora tuoi argomenti ....

Come possiamo ripristinare tutti i dati del cluster se succede qualcosa? se cluster non riesce siamo in grado di riavviarlo ..

Se un nodo è fallito prima del completamento di un lavoro, quindi non c'è lavoro in attesa di Job Tracker, è che il lavoro continui o riavviare dal primo nel nodo libera? abbiamo di default 3 repliche di dati (intendo blocchi) per ottenere elevata disponibilità dipende da amministratore che quanto le repliche ha stabilito ... così inseguitori di lavoro proseguirà con altra copia dei dati su altri nodo di dati

possiamo usare il programma C in Mapreduce (ad esempio, Bubble sort in mapreduce)? fondamentalmente mapreduce è un motore di esecuzione che risolverà o processerà un problema di big data in modalità distribuita (storage plus processing). stiamo eseguendo la gestione dei file e tutte le altre operazioni di base utilizzando la programmazione di mapreduce in modo che possiamo usare qualsiasi lingua in cui possiamo gestire i file secondo i requisiti.

architettura Hadoop 1.X hadoop 1.x has 4 basic daemons

ho appena dato una prova. Spero che ti possa aiutare così come gli altri.

Suggerimenti/miglioramenti sono i benvenuti.

Problemi correlati