Erläuterung des Arbeitsmechanismus von Namenode und SecondaryNameNode in Hadoop

Erläuterung des Arbeitsmechanismus von Namenode und SecondaryNameNode in Hadoop

1) Prozess

2) FSImage und Bearbeitungen

Nodenode ist das Gehirn von HDFS. Es verwaltet den Verzeichnisbaum des gesamten Dateisystems und alle Dateien und Verzeichnisse im Verzeichnisbaum. Diese Informationen werden im Dateisystem in zwei Dateitypen gespeichert: Eine ist das Namespace-Image (auch Dateisystem-Image, File System Image, FSImage genannt), das eine vollständige Momentaufnahme der HDFS-Metadaten darstellt. Bei jedem Start von NameNode wird standardmäßig das neueste Namespace-Image geladen. Das andere ist das Bearbeitungsprotokoll des Befehlsraum-Images.

Die FSImage-Datei ist eigentlich ein permanenter Prüfpunkt der Metadaten des Dateisystems, aber nicht jeder Schreibvorgang aktualisiert diese Datei. Da FSImage eine große Datei ist, wird das System bei häufigen Schreibvorgängen extrem langsam ausgeführt. Die Lösung besteht darin, dass NameNode nur die Änderungen im Voraus in das Protokoll schreibt, d. h. das Bearbeitungsprotokoll des Namespace-Image schreibt. Mit der Zeit wird das Bearbeitungsprotokoll immer größer. Sobald ein Fehler auftritt, dauert es sehr lange, den Vorgang rückgängig zu machen. Genau wie bei herkömmlichen relationalen Datenbanken ist es daher erforderlich, FSImage und Bearbeitungsprotokoll regelmäßig zusammenzuführen. Wenn der Zusammenführungsvorgang von NameNode ausgeführt wird, kann NameNode möglicherweise nicht genügend Ressourcen bereitstellen, wenn Dienste für den Cluster bereitgestellt werden. Um dieses Problem vollständig zu lösen, wurde SecondaryNameNode geboren.

3) Phase 1: Start des Namenodes

  • (1) Nachdem der Namenode zum ersten Mal gestartet und formatiert wurde, werden die Dateien „fsimage“ und „edits“ erstellt. Handelt es sich nicht um den ersten Start, werden das Editierprotokoll und die Image-Datei direkt in den Speicher geladen.
  • (2) Der Client fordert das Hinzufügen, Löschen oder Ändern von Metadaten an.
  • (3) Namenode zeichnet Betriebsprotokolle auf und aktualisiert rollierende Protokolle.
  • (4) Namenode fügt Daten im Speicher hinzu, löscht, ändert und fragt sie ab.

4) Phase 2: Sekundäre NameNode-Arbeit

  • (1) Der sekundäre NameNode fragt den NameNode, ob ein Checkpoint erforderlich ist. Bringen Sie es direkt zum Namenode zurück, um das Ergebnis zu überprüfen.
  • (2) Sekundärer NameNode fordert die Ausführung eines Checkpoints an.
  • (3) Der sekundäre NameNode weist den NameNode an, ein fortlaufendes Update des zu schreibenden Änderungsprotokolls durchzuführen.
  • (4) Der sekundäre NameNode lädt die FSImage-Datei, spielt das Bearbeitungsprotokoll erneut ab, fügt es in das FSImage ein, komprimiert die neue FSImage-Datei und schreibt sie auf die Festplatte.
  • (5) Kopieren Sie fsimage in den Namenode.
  • (6) Namenode benennt fsimage in fsimage um.

Standardmäßig erfolgt dieser Vorgang einmal pro Stunde oder wenn die NameNode-Bearbeitungsprotokolldatei die Standardgröße von 64 MB erreicht.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Hadoop-Quellcodeanalyse, drei Start- und Skriptanalysen
  • Hadoop-Quellcode-Analyse vier Remote-Debug
  • Hadoop-Quellcode-Analyse 5 HDFS-Architekturprinzipanalyse
  • Hadoop NameNode-Föderation
  • Hadoop-Quellcode-Analyse: Sechs Startdateien, Namensknotenprinzip, detaillierte Erklärung

<<:  Detaillierte Erläuterung der Verwendung von binlog2sql zum schnellen Rollback nach einem MySQL-Fehler

>>:  So erstellen Sie ein React-Projekt mit Vite

Artikel empfehlen

So verwenden Sie den Linux-Befehl tr

01. Befehlsübersicht Der Befehl tr kann Zeichen a...

Detailliertes Tutorial zum Ausführen von Selenium+Chromedriver auf dem Server

1. Einleitung Ich möchte Selenium verwenden, um D...

Welche Bilddateiformate gibt es und wie wählt man sie aus?

1. Welche drei Formate? Dies sind: gif, jpg und pn...

HTML+CSS zum Erstellen von Herzschlag-Spezialeffekten

Heute werden wir einen einfachen Herzschlageffekt...

Implementierung der CSS-Rahmenlängensteuerungsfunktion

Wenn die Rahmenlänge früher kleiner als der Conta...

Zusammenfassung des Wissens über MySql-Speicher-Engines und Indizes

Speicher-Engine Was ist eine Datenbank-Speicher-E...

Zusammenfassung der Ubuntu-Sicherungsmethoden (vier Typen)

Methode 1: Um Respin zu verwenden, folgen Sie die...

Der Interviewer fragte, wie man in CSS ein festes Seitenverhältnis erreicht

Möglicherweise hatten Sie für diese Frage bisher ...

Grafisches Tutorial zur Installation von Linux CentOS6.9 unter VMware

Als technischer Neuling zeichne ich den Vorgang d...

So implementieren Sie den Nginx-Reverse-Proxy für mehrere Server

Nginx verwendet mehrere Reverse-Proxy-Server, was...