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

Zusammenfassung der Probleme bei der Installation von MySQL 5.7.19 unter Linux

Als ich MySQL zum ersten Mal auf meiner virtuelle...

Detaillierte Erklärung des TS-Objekt-Spread-Operators und des Rest-Operators

Inhaltsverzeichnis Überblick Objektrestattribut E...

So installieren Sie Windows Server 2008 R2 auf einem Dell R720-Server

Hinweis: Alle Bilder in diesem Artikel stammen au...

Detaillierte Erklärung, wie Angular mit unerwarteten Ausnahmefehlern umgeht

Vorne geschrieben Unabhängig davon, wie gut der C...

onfocus="this.blur()" wird von blinden Webmastern gehasst

Als er über die Seite zur Bedienung der Bildschir...

Mehrere CSS3-Tag-Abkürzungen (empfohlen)

border-radius: CSS3 abgerundete Ecken Syntax: bor...

Beispielcode für horizontales Balkendiagramm von Echarts Bar

Inhaltsverzeichnis Horizontales Balkendiagramm Da...

Analyse des Prinzips von Vue nextTick

Inhaltsverzeichnis Ereignisschleife miscroTask (M...

Verwendung des SerialPort-Moduls in Node.js

Inhaltsverzeichnis Zweck Modulinstallation Grundl...

Detaillierte Erklärung des Linux-Kernel-Makros Container_Of

Inhaltsverzeichnis 1. Wie werden Strukturen im Ge...