Hadoop 2.0-Name Knoten, sekundärer Knoten und Prüfpunktknoten für hohe Verfügbarkeit

8

Nach dem Lesen der Apache Hadoop-Dokumentation gibt es eine kleine Verwirrung beim Verständnis der Verantwortlichkeiten des sekundären Knotens & amp; Kontrollpunkt Knoten

Ich bin klar in Nameode Rolle und Verantwortlichkeiten:

  
  • Der NameNode speichert Änderungen am Dateisystem als Protokoll, das an eine native Dateisystemdatei angehängt wird. Wenn ein NameNode gestartet wird, liest er den HDFS-Status aus einer Bilddatei, fsimage, und wendet dann Bearbeitungen aus der Bearbeitungsprotokolldatei an. Anschließend schreibt es den neuen HDFS-Status in fsimage und startet den normalen Betrieb mit einer leeren Editierdatei. Da NameNode fsimage zusammenführt und Dateien nur während des Startvorgangs bearbeitet, kann die Protokolldatei für die Bearbeitung in einem ausgelasteten Cluster im Laufe der Zeit sehr groß werden. Ein weiterer Nebeneffekt einer größeren Editierdatei ist, dass der nächste Neustart von NameNode länger dauert.
  •   

Aber ich habe eine kleine Verwirrung im Verständnis Secondary namenode & amp; Überprüfen Sie die Verantwortlichkeiten für Punktnamenknoten.

Sekundärer NameNode :

  
  • Der sekundäre NameNode führt die fsimage- und die Editierprotokolldateien regelmäßig zusammen und behält die Größe der Protokolldatei innerhalb eines Limits bei. Es wird normalerweise auf einem anderen Computer als dem primären NameNode ausgeführt, da seine Speicheranforderungen in der gleichen Reihenfolge wie der primäre NameNode sind.
  •   

Kontrollpunktknoten:

  
  • Der Checkpoint-Knoten erstellt regelmäßig Checkpoints des Namespace. Es lädt fsimage herunter und editiert sie vom aktiven NameNode, führt sie lokal zusammen und lädt das neue Image zurück in den aktiven NameNode. Der Prüfpunktknoten wird normalerweise auf einem anderen Computer als dem NameNode ausgeführt, da seine Speicheranforderungen in der gleichen Reihenfolge wie der NameNode sind. Der Checkpoint-Knoten wird von bin / hdfs namennode-checkpoint auf dem in der Konfigurationsdatei angegebenen Knoten gestartet.
  •   

Es scheint, dass die Verantwortung zwischen sekundärem namenode & amp; Checkpoint-Knoten sind nicht klar. Beide arbeiten an Änderungen. Wer wird also endlich verändern?

Mit anderen Worten, ich habe zwei Fehler in jira erstellt, um die Mehrdeutigkeit beim Verständnis dieser Konzepte zu beseitigen.

%Vor%     
Ravindra babu 17.08.2015, 13:12
quelle

1 Antwort

12

NameNode (primär)

Der NameNode speichert die Metadaten des HDFS. Der Status von HDFS wird in einer Datei namens fsimage gespeichert und ist die Basis der Metadaten. Während der Laufzeit werden Änderungen nur in eine Protokolldatei namens edits geschrieben. Beim nächsten Start von NameNode wird der Status von fsimage gelesen, die Änderungen von Bearbeitungen werden auf diesen angewendet und der neue Zustand wird zurück in fsimage geschrieben. Nachdem diese Änderungen gelöscht und enthalten ist, ist jetzt bereit für neue Protokolleinträge.

Prüfpunktknoten

Ein Checkpoint-Knoten wurde eingeführt, um die Nachteile des NameNode zu beheben. Die Änderungen werden nur in Edits geschrieben und während der Laufzeit nicht mit fsimage zusammengeführt. Wenn der NameNode für eine Weile ausgeführt wird, wird die Bearbeitung sehr umfangreich und der nächste Startvorgang wird noch länger dauern, da mehr Änderungen auf den Status angewendet werden müssen, um den letzten Status der Metadaten zu bestimmen.

Der Checkpoint-Knoten ruft fsimage regelmäßig ab und editiert sie vom NameNode und führt sie zusammen. Der resultierende Zustand wird Prüfpunkt genannt. Danach wird das Ergebnis in den NameNode hochgeladen.

Es gab auch einen ähnlichen Knotentyp namens "Secondary Node", aber er verfügt nicht über die Funktion "Upload to NameNode". Daher muss der NameNode den Status vom sekundären NameNode abrufen. Es war auch verwirrend, weil der Name andeutet, dass der Secondary NameNode die Anfrage übernimmt, wenn der NameNode ausfällt, was nicht der Fall ist.

Sicherungsknoten

Der Backup-Knoten bietet die gleiche Funktionalität wie der Checkpoint-Knoten, ist jedoch mit dem NameNode synchronisiert. Es muss die Änderungen nicht regelmäßig abrufen, da es eine Vielzahl von Dateisystemänderungen erhält. aus dem NameNode. Es enthält den aktuellen Status im Speicher und muss nur in einer Bilddatei gespeichert werden, um einen neuen Prüfpunkt zu erstellen.

    
java_bee 17.08.2015, 16:35
quelle