Einführung in die HDFS-Architektur

HDFS steht für Hadoop Distributed File System und besagt, dass Dateien in Blöcke unterteilt und auf mehreren Computern gespeichert werden.

Funktionen von HDFS

Die Eigenschaften des HDFS sind wie folgt:

1. Verfügbarkeit

In HDFS werden Daten regelmäßig zwischen Datenknoten repliziert, indem eine Replik von Blöcken auf dem anderen Datenknoten erstellt wird. Im Falle eines Hardwarefehlers oder -fehlers kann der Benutzer seine Daten von einem anderen Datenknoten abrufen, auf dem die Daten repliziert wurden.

2. Skalierbarkeit

In HDFS werden Daten in Form von Blöcken auf mehreren Datenknoten gespeichert. Mit HDFS können Benutzer die Größe von Blöcken bei Bedarf erhöhen. In HDFS werden zwei Arten von Skalierbarkeitsmechanismen verwendet: horizontale und vertikale Skalierbarkeit.

3. Replikation

Dies sind die einzigartigen Merkmale von HDFS, mit denen ein Benutzer bei einem Hardwarefehler einfach auf seine Daten zugreifen kann.

HDFS-Architektur

HDFS folgt einer Master-Slave-Architektur, die folgende Komponenten aufweist:

1. NameNode:

NameNode wird auch als Masterknoten bezeichnet, da hier alle auf DataNodes vorhandenen Blöcke verarbeitet werden.

NameNode führt die folgenden Aufgaben aus:

  • Verwalten Sie alle DataNode-Blöcke
  • Gewährt dem Benutzer Dateizugriff
  • Bewahrt alle Datensätze der Blöcke auf, die in DataNode vorhanden sind
  • NameNode zeichnet alle Informationen von Dateien auf, zum Beispiel wenn ein Dateiname umbenannt oder der Inhalt geändert oder gelöscht wurde. NameNode zeichnet diese Änderung sofort in EditLogs auf
  • Es werden die Datensätze aller Blöcke von den Datenknoten abgerufen, um sicherzustellen, dass alle Blöcke in DataNode aktiv sind.
  • Im Fehlerfall wird bei einem Hardwarefehler sofort ein anderer DataNode ausgewählt, um die Replikation zu erstellen und die Kommunikation zu allen DataNodes zu verwalten

Dateitypen in NameNode

NameNode enthält zwei Dateitypen, FsImage und EditLogs

ich. FsImage: Es wird auch als Dateibild bezeichnet, da es alle Informationen zu einem Dateisystem mit Namespaces enthält. Es enthält auch alle Verzeichnisse und Dateien des Dateisystems in serialisierter Form.

ii. EditLogs: Aktuelle Änderungen in den Dateien des Dateisystems werden in EditLogs gespeichert.

2. Sekundärer NameNode

Der sekundäre NameNode wird auch als Prüfpunktknoten bezeichnet, da er reguläre Prüfpunkte ausführt. Es fungiert als Helfer für den primären NameNode.

Secondary NameNode führt die folgenden Aufgaben aus

  • Secondary NameNode kombiniert FsImage und EditLogs aus dem NameNode.
  • Es liest alle Informationen des Dateisystems aus dem Speicher von NameNode und schreibt diese Informationen auf eine Festplatte des Dateisystems.
  • Es lädt in regelmäßigen Abständen die FsImage- und EditLogs-Dateien von NameNode herunter, liest die Änderungsinformationen der EditLogs-Dateien und notiert die Änderungen an FsImage. Dieser Prozess erstellt ein neues FsImage, das dann an den NameNode zurückgesendet wird. Wann immer der NameNode gestartet wird, werden diese FsImage verwendet.

3. DataNode

DataNode wird auch als Slave-Knoten bezeichnet, da er alle Knoten verarbeitet, die Daten auf einer Slave-Maschine enthalten. DataNode speichert Daten im Dateiformat ext3 oder ext4.

Der Datenknoten führt die folgenden Aufgaben aus:

  • Alle Daten werden auf DataNodes gespeichert
  • Es führt alle Operationen von Dateien gemäß der Benutzeranforderung aus, zum Beispiel das Lesen von Dateiinhalten, das Schreiben neuer Daten in Dateien,
  • Außerdem werden alle Anweisungen von NameNode befolgt, z. B. das Umbenennen der Datei, das Löschen einiger Blöcke in DataNode, das Erstellen von Blöcken usw

4. Checkpoint Node:

Checkpoint-Knoten ist ein Knoten, der in regelmäßigen Abständen einen Checkpoint von Dateien erstellt. Laden Sie den FsImage- und den EditLogs-Knoten in HDFS von NameNode herunter und führen Sie sie zusammen, um ein neues Bild zu erstellen und dieses neue Bild an NameNode zu senden. Der letzte Prüfpunkt wird in einem Verzeichnis mit der gleichen Struktur wie das Verzeichnis des Namensknotens gespeichert. Aus diesem Grund ist das mit einem Prüfpunkt versehene Bild bei Bedarf immer verfügbar.

5. Sicherungsknoten:

Die Funktion eines Sicherungsknotens ähnelt der eines Prüfpunktknotens zum Ausführen einer Prüfpunktaufgabe. In Hadoop speichert der Sicherungsknoten eine neueste und aktualisierte Kopie des Dateisystem-Namespaces. Es ist nicht erforderlich, FsImage- und editsLogs-Dateien vom aktiven NameNode herunterzuladen, um einen Prüfpunkt im Sicherungsknoten zu erstellen, da dieser mit dem Status des aktiven NameNode synchronisiert ist. Die Funktion des Sicherungsknotens ist genauer, da der Namespace in der lokalen FsImage-Datei gespeichert und editLogs zurückgesetzt werden.

6. Blöcke:

Alle Benutzerdaten werden in HDFS-Dateien gespeichert, die dann in kleine Segmente unterteilt werden. Diese Segmente werden in den DataNodes gespeichert. Die auf DataNodes vorhandenen Segmente werden als Block aufgerufen. Die Standardblockgröße dieser Blöcke beträgt 128 MB. Die Größe des Blocks kann gemäß den Benutzeranforderungen durch Konfigurieren von HDFS geändert werden.

Wenn die Datengröße kleiner als die Blockgröße ist, entspricht die Blockgröße der Datengröße. Wenn die Daten beispielsweise 135 MB groß sind, werden 2 Blöcke erstellt. Eine hat die Standardgröße 128 MB und eine andere nur 7 MB, nicht 128 MB. Dadurch wird viel Platz und die Uhrzeit der Festplatte gespart.

Replikationsverwaltung in HDFS-Architektur:

HDFS ist fehlertolerant. Fehlertoleranz ist eine Stärke des Systems im Falle von Fehlern und wie es auf Fehler und schwierige Bedingungen reagiert. Die Fehlertoleranz basiert auf dem Prozess der Replikaterstellung. Kopien der Benutzerdaten werden auf Computern im DHFS-Cluster gespeichert. Daher kann auf eine Kopie dieser Daten von den anderen Computern des HDFS-Clusters zugegriffen werden, wenn das System ausfällt oder ausfällt. Jeder Block in der HDFS-Architektur verfügt über 3 Replikate, die in verschiedenen DataNodes gespeichert sind. NameNode verwaltet die in DataNodes verfügbaren Kopien. NameNode fügt Kopien hinzu oder löscht sie basierend auf den Kriterien von unterreplizierten oder überreplizierten Blöcken.

Schreibvorgang

Um Dateien in HDFS zu schreiben, kommuniziert der Client für Metadaten mit dem NameNode. Der Nameode antwortet mit mehreren Blöcken, deren Speicherort, Kopien usw. Der Client teilt Dateien auf der Grundlage der Nameode-Informationen in mehrere Blöcke auf. Anschließend werden sie an DataNode gesendet. Zuerst sendet der Client Block A mit anderen Informationen zu DataNodes an DataNode 1. Wenn DataNode 1 den Client-Block A empfängt, kopiert DataNode 1 denselben Block in dasselbe Rack in DataNode 2. Da sich beide DataNodes im selben Rack befinden, erfolgt die Übertragung des Blocks über den Rack-Switch. DataNode 2 kopiert jetzt denselben Block in DataNode 3. Da sich beide DataNodes in unterschiedlichen Racks befinden, erfolgt die Übertragung des Blocks über einen Out-of-Rck-Schalter. Sobald DataNode die Blöcke des Clients empfängt, sendet es die Bestätigung an NameMode. Für jeden Block der Datei wird derselbe Vorgang wiederholt.

Leseoperation

Für den Lesevorgang kommuniziert der erste Client für Metadaten mit dem NameNode. Ein Client beendet NameNode mit dem Dateinamen und dem Speicherort. Der Nameode antwortet mit einer Blocknummer, einem Ort, Kopien und anderen Informationen. Danach kommuniziert der Client mit DataNodes. Basierend auf den vom NameNode empfangenen Informationen beginnt der Client, Daten parallel von den DataNodes zu lesen. Wenn der gesamte Block der Datei vom Client oder der Anwendung empfangen wird, werden diese Blöcke zu einer ursprünglichen Dateiform kombiniert.

Fazit - HDFS-Architektur

Mit Hilfe von NameNode und DataNode werden sehr große Dateien zuverlässig maschinenübergreifend in einem großen Cluster gespeichert. Aus Gründen der Fehlertoleranz ist es hilfreich, bei einem Software- oder Hardwarefehler auf Daten zuzugreifen. So funktioniert die HDFS-Architektur.

Empfohlene Artikel

Dies war ein Leitfaden für die HDFS-Architektur. Hier haben wir die grundlegenden Konzepte mit verschiedenen Architekturtypen, Funktionen und dem Replikationsmanagement der HDFS-Architektur besprochen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Was ist Datenmodellierung?
  2. Was ist Datenvisualisierung?
  3. Was ist ein Data Warehouse?
  4. Was ist SQL Developer?

Kategorie: