2015-08-17 30 views
8

Dopo aver letto Apache Hadoop documentation, c'è una piccola confusione nel capire le responsabilità del nodo & controllo nodo punto secondarioHadoop 2,0 nome nodo, nodo secondario e il nodo Checkpoint per High Availability

Sono chiaro su NameNode ruolo e le responsabilità :

  • i negozi NameNode modifiche al file system come un registro aggiunto a un file system nativo, edita. Quando si avvia un NameNode, legge lo stato HDFS da un file immagine, fsimage, quindi applica le modifiche dal file di registro delle modifiche. Quindi scrive il nuovo stato HDFS su fsimage e avvia il normale funzionamento con un file di modifiche vuoto. Poiché NameNode unisce fsimage e modifica i file solo durante l'avvio, il file di registro delle modifiche potrebbe diventare molto grande nel tempo su un cluster occupato. Un altro effetto collaterale di un file di modifiche più grande è che il prossimo riavvio di NameNode richiede più tempo.

ma ho una piccola confusione nella comprensione secondari NameNode & responsabilità Punto di controllo NameNode.

NameNode secondaria:

  • Il NameNode secondario fonde il fsimage e le modifiche di registro periodicamente i file e mantiene le modifiche log dimensione entro un limite. Di solito viene eseguito su una macchina diversa rispetto al NameNode primario poiché i suoi requisiti di memoria sono nello stesso ordine del NameNode primario.

Controllare nodo punto:

  • Il nodo Checkpoint crea periodicamente i punti di controllo dello spazio dei nomi. Scarica fsimage e modifiche dal NameNode attivo, le unisce a livello locale e carica la nuova immagine sul NameNode attivo. Il nodo Checkpoint di solito viene eseguito su una macchina diversa dal NameNode poiché i suoi requisiti di memoria sono nello stesso ordine del NameNode. Il nodo Checkpoint viene avviato da bin/hdfs namenode -checkpoint sul nodo specificato nel file di configurazione.

Sembra che la responsabilità tra Secondario NameNode & nodo Checkpoint non sono chiare. Entrambi stanno lavorando sulle modifiche. Quindi chi modificherà finalmente?

Su una nota diversa, ho creato due bug in jira per rimuovere l'ambiguità nella comprensione di questi concetti.

issues.apache.org/jira/browse/HDFS-8913 
issues.apache.org/jira/browse/HDFS-8914 

risposta

12

NameNode (Primario)

I negozi NameNode i metadati della HDFS. Lo stato di HDFS è memorizzato in un file chiamato fsimage ed è la base dei metadati. Durante il runtime le modifiche vengono semplicemente scritte in un file di registro chiamato modifiche.All'avvio successivo del NameNode lo stato viene letto da fsimage, le modifiche apportate alle modifiche vengono applicate a tale e il nuovo stato viene riscritto su fsimage. Dopo che questa modifica è stata cancellata e contiene è ora pronto per le nuove voci di registro.

Checkpoint Nodo

Un punto di controllo del nodo è stato introdotto per risolvere gli inconvenienti della NameNode. Le modifiche vengono semplicemente scritte in modifiche e non unite a fsimage durante il runtime. Se il NameNode viene eseguito per un po 'di tempo le modifiche diventano enormi e il prossimo avvio richiederà ancora più tempo perché devono essere applicate più modifiche allo stato per determinare l'ultimo stato dei metadati.

Il nodo Checkpoint recupera periodicamente un'immagine fsimage e le modifiche dal NameNode e le unisce. Lo stato risultante è chiamato checkpoint. Dopo questo è caricato il risultato sul NameNode.

C'era anche un tipo simile di nodo chiamato "nodo secondario" ma non ha la funzione "upload to NameNode". Quindi il NameNode deve recuperare lo stato dal NameNode secondario. Inoltre si è preoccupato perché il nome suggerisce che il NameNode secondario accetta la richiesta se il NameNode fallisce, il che non è il caso.

Backup Nodo

Il Nodo Backup fornisce la stessa funzionalità Checkpoint nodo, ma è sincronizzato con il NameNode. Non ha bisogno di recuperare periodicamente le modifiche perché riceve uno strem delle modifiche al file system. dal NameNode. Mantiene lo stato corrente in memoria e deve solo salvarlo in un file immagine per creare un nuovo checkpoint.

+0

Sembra che Apache non abbia documentato correttamente la funzionalità. * * ThCommunication Protocols Tutti i protocolli di comunicazione HDFS sono sovrapposti al protocollo TCP/IP. Un client stabilisce una connessione a una porta TCP configurabile sulla macchina NameNode. Parla il ClientProtocol con il NameNode. I DataNodes comunicano con il NameNode utilizzando il Protocollo DataNode. Un'astrazione Remote Procedure Call (RPC) racchiude sia il protocollo client che il protocollo DataNode. In base alla progettazione, il NameNode non avvia mai alcun RPC. Invece, risponde solo alle richieste RPC emesse da DataNodes o client. –

+0

Sono stati creati due bug in jara: https://issues.apache.org/jira/browse/HDFS-8914 e https://issues.apache.org/jira/browse/HDFS-8913. Spero di ottenere un contenuto migliore nella documentazione –

+0

Contenuto proveniente da http://morrisjobke.de/2013/12/11/Hadoop-NameNode-and-siblings/ – Andrew