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

Über IE8-Kompatibilität: Erklärung des X-UA-Compatible-Attributs

Problembeschreibung: Code kopieren Der Code laute...

Interaktive Erlebnistrends, die 2015-2016 zum Mainstream werden

Der wichtigste Artikel zum interaktiven Design im...

MySQL-Tutorial versteht gespeicherte Prozeduren gründlich

Inhaltsverzeichnis 1. Konzepte im Zusammenhang mi...

MySQL berechnet die Anzahl der Tage, Monate und Jahre zwischen zwei Daten

Die in MySQL integrierte Datumsfunktion TIMESTAMP...

border-radius ist eine Methode zum Hinzufügen abgerundeter Ränder zu Elementen

border-radius:10px; /* Alle Ecken sind mit einem ...

Natives js zur Realisierung der Bild-Upload-Steuerung

In diesem Artikelbeispiel wird der spezifische Co...

Codeanalyse von Benutzervariablen in MySQL-Abfrageanweisungen

Im vorherigen Artikel haben wir die MySQL-Optimie...

mysql 8.0.18 mgr-Installation und seine Umschaltfunktion

1. Systeminstallationspaket yum -y install make g...

Lösung des Konflikts zwischen Linux-Kernel- und SVN-Versionen

Phänomen Das System konnte den Linux-Systemkernel...