Ein HDFS-Cluster hat zwei Arten von Knoten, die in einem Master-Slave-Muster arbeiten:
1. NameNode (der Master) und
2. Anzahl der DataNodes (Slaves/Worker).
HDFS NameNode
1. NameNode ist die zentrale Komponente des HDFS-Architektur-Frameworks.
2. NameNode ist auch als Master-Knoten bekannt.
3. HDFS NameNode speichert Metadaten, d.h. Anzahl der Datenblöcke, Dateinamen, Pfad, Block-IDs, Blockposition, Anzahl der Replikate und auch Slave-bezogene Konfiguration. Diese Metadaten sind im Speicher des Masters verfügbar, damit die Daten schneller abgerufen werden können.
4. NameNode speichert Metadaten in Bezug auf den Dateisystem-Namensraum im Speicher, um eine schnellere Antwortzeit zu ermöglichen. Daher wird mehr Speicher benötigt. Die NameNode-Konfiguration sollte daher in einer zuverlässigen Konfiguration eingesetzt werden.
5. NameNode unterhält und verwaltet die Slave-Knoten und weist ihnen Aufgaben zu.
6. NameNode kennt alle DataNodes, die Datenblöcke für eine bestimmte Datei enthalten.
7. NameNode koordiniert mit Hunderten oder Tausenden von DataNodes und bedient die von Client-Anwendungen kommenden Anfragen.
Zwei Dateien ‚FSImage‘ und ‚EditLog‘ werden zum Speichern von Metadateninformationen verwendet.
FsImage: Es ist der Schnappschuss des Dateisystems, wenn Name Node gestartet wird. Es ist eine „Image-Datei“. FsImage enthält den gesamten Namespace des Dateisystems und wird als Datei im lokalen Dateisystem des NameNode gespeichert. Sie enthält auch eine serialisierte Form aller Verzeichnisse und Datei-Inodes im Dateisystem. Jeder Inode ist eine interne Darstellung der Metadaten einer Datei oder eines Verzeichnisses.
EditLogs: Es enthält alle letzten Änderungen, die am Dateisystem auf dem letzten FsImage vorgenommen wurden. NameNode erhält eine create/update/delete-Anfrage vom Client. Danach wird diese Anfrage zunächst in der Edits-Datei gespeichert.
Funktionen von NameNode in HDFS
1. Er ist der Master-Daemon, der die DataNodes (Slave-Nodes) verwaltet.
2. Er zeichnet die Metadaten aller im Cluster gespeicherten Dateien auf, z.B. den Ort der gespeicherten Blöcke, die Größe der Dateien, Berechtigungen, Hierarchie usw.
3. Er zeichnet jede Änderung der Metadaten des Dateisystems auf. Wenn beispielsweise eine Datei im HDFS gelöscht wird, zeichnet der NameNode dies sofort im EditLog auf.
4. Er empfängt regelmäßig einen Heartbeat und einen Blockbericht von allen DataNodes im Cluster, um sicherzustellen, dass die DataNodes live sind.
5. Er hält eine Aufzeichnung aller Blöcke in HDFS und in welchen Knoten sich diese Blöcke befinden.
6. Der NameNode ist auch dafür verantwortlich, sich um den Replikationsfaktor aller Blöcke zu kümmern.
7. Im Falle eines Datenknotenausfalls wählt der NameNode neue Datenknoten für neue Replikate aus, gleicht die Plattennutzung aus und verwaltet den Kommunikationsverkehr zu den Datenknoten.
HDFS DataNode
1. DataNode wird auch als Slave-Knoten bezeichnet.
2. In der Hadoop-HDFS-Architektur speichert DataNode die aktuellen Daten im HDFS.
3. DataNodes sind für das Serving, die Lese- und Schreibanfragen für die Clients verantwortlich.
4. DataNodes können auf Standard-Hardware eingesetzt werden.
5. DataNodes sendet Informationen an den NameNode über die in diesem Knoten gespeicherten Dateien und Blöcke und antwortet dem NameNode für alle Dateisystemoperationen.
6. Wenn ein DataNode startet, meldet er sich dem NameNode zusammen mit der Liste der Blöcke, für die er zuständig ist.
7. DataNode ist normalerweise mit viel Festplattenspeicher konfiguriert. Da die eigentlichen Daten in der DataNode gespeichert werden.
Funktionen der DataNode im HDFS
1. Dies sind Slave-Daemons oder Prozesse, die auf jedem Slave-Rechner laufen.
2. Die eigentlichen Daten werden auf DataNodes gespeichert.
3. Die DataNodes führen die Low-Level-Lese- und Schreibanfragen von den Clients des Dateisystems aus.
4. Jeder DataNode sendet alle 3 Sekunden eine Heartbeat-Nachricht an den Name Node und teilt mit, dass er am Leben ist. Wenn der Name Node 10 Minuten lang keine Heartbeat-Nachricht von einem Data Node erhält, betrachtet der Name Node diesen bestimmten Data Node als tot und beginnt den Prozess der Blockreplikation auf einem anderen Data Node.
5. Alle Datenknoten sind im Hadoop-Cluster so synchronisiert, dass sie miteinander kommunizieren können und sicherstellen, dass
i. Balancieren der Daten im System
ii. Daten verschieben, um eine hohe Replikation zu gewährleisten
iii. Kopieren von Daten bei Bedarf