Inhaltsverzeichnis:
Video: How to install Hadoop on Ubuntu single node cluster 2024
Das verteilte Dateisystem von Hadoop ist ein vielseitiger, flexibler und geclusterter Ansatz zum Verwalten von Dateien in einer Big Data-Umgebung. HDFS ist nicht das endgültige Ziel für Dateien. Vielmehr handelt es sich um einen Datendienst, der einen einzigartigen Satz von Fähigkeiten bietet, die benötigt werden, wenn Datenvolumen und Geschwindigkeit hoch sind. Da die Daten nur einmal geschrieben und dann viele Male gelesen werden, ist HDFS eine ausgezeichnete Wahl für die Unterstützung von Big-Data-Analysen, und nicht das ständige Lesen und Schreiben von anderen Dateisystemen.
Big Data NameNodes
HDFS funktioniert, indem große Dateien in kleinere Teile zerlegt werden, die als Blöcke bezeichnet werden. Die Blöcke werden auf Datenknoten gespeichert, und es liegt in der Verantwortung des Namensknotens, zu wissen, welche Blöcke auf welchen Datenknoten die vollständige Datei bilden. Der NameNode fungiert auch als "Verkehrspolizist" und verwaltet den gesamten Zugriff auf die Dateien.
Die vollständige Sammlung aller Dateien im Cluster wird manchmal als Namespace des Dateisystems bezeichnet. Es ist die Aufgabe des NameNodes, diesen Namespace zu verwalten.
Obwohl eine starke Beziehung zwischen dem NameNode und den Datenknoten besteht, arbeiten sie "lose gekoppelt". Dadurch können sich die Cluster-Elemente dynamisch verhalten und Server hinzufügen, wenn der Bedarf steigt. In einer typischen Konfiguration finden Sie einen NameNode und möglicherweise einen Datenknoten, der auf einem physischen Server im Rack ausgeführt wird. Andere Server führen nur Datenknoten aus.
Die Datenknoten kommunizieren untereinander, so dass sie während normaler Dateisystemoperationen zusammenarbeiten können. Dies ist notwendig, da Blöcke für eine Datei wahrscheinlich auf mehreren Datenknoten gespeichert werden. Da der NameNode für den korrekten Betrieb des Clusters so wichtig ist, kann und sollte er repliziert werden, um einen Single-Point-Fehler zu vermeiden.
Große Datenknoten
Datenknoten sind nicht intelligent, aber sie sind robust. Innerhalb des HDFS-Clusters werden Datenblöcke über mehrere Datenknoten hinweg repliziert und der Zugriff wird vom NameNode verwaltet. Der Replikationsmechanismus ist auf optimale Effizienz ausgelegt, wenn alle Knoten des Clusters in einem Rack zusammengefasst sind. In der Tat verwendet der NameNode eine "Rack-ID", um die Datenknoten im Cluster zu verfolgen.
Datenknoten stellen auch "Heartbeat" -Nachrichten bereit, um die Konnektivität zwischen dem NameNode und den Datenknoten zu erkennen und sicherzustellen. Wenn kein Heartbeat mehr vorhanden ist, hebt der NameNode die Zuordnung des Datenknotens vom Cluster auf und arbeitet so weiter, als ob nichts passiert wäre. Wenn der Heartbeat zurückkehrt, wird er dem Cluster transparent in Bezug auf den Benutzer oder die Anwendung hinzugefügt.
Die Datenintegrität ist ein Schlüsselmerkmal. HDFS unterstützt eine Reihe von Funktionen für die Datenintegrität. Wenn Sie erwarten, dass Dateien in Blöcke aufgeteilt werden und dann auf verschiedene Server im Cluster verteilt werden, können sich Schwankungen im Betrieb eines Elements auf die Datenintegrität auswirken. HDFS verwendet Transaktionsprotokolle und Prüfsummenvalidierung, um die Integrität im gesamten Cluster sicherzustellen.
Transaktionsprotokolle protokollieren jeden Vorgang und können das Dateisystem überprüfen oder wiederherstellen, sollte etwas nicht geschehen.
Checksum-Validierungen werden verwendet, um den Inhalt von Dateien in HDFS zu garantieren. Wenn ein Client eine Datei anfordert, kann er den Inhalt überprüfen, indem er seine Prüfsumme überprüft. Wenn die Prüfsumme übereinstimmt, kann die Dateioperation fortgesetzt werden. Wenn nicht, wird ein Fehler gemeldet. Checksummen werden ausgeblendet, um Manipulationen zu vermeiden.
Datenknoten verwenden lokale Festplatten auf dem Commodity-Server für die Persistenz. Alle Datenblöcke werden vor allem aus Performance-Gründen lokal gespeichert. Datenblöcke werden über mehrere Datenknoten hinweg repliziert, sodass der Ausfall eines Servers nicht notwendigerweise eine Datei beschädigt. Der Replikationsgrad, die Anzahl der Datenknoten und der HDFS-Namespace werden bei der Implementierung des Clusters festgelegt.
HDFS für Big Data
HDFS behebt große Datenherausforderungen, indem Dateien in eine verwandte Sammlung kleinerer Blöcke aufgeteilt werden. Diese Blöcke sind auf die Datenknoten im HDFS-Cluster verteilt und werden vom NameNode verwaltet. Die Blockgrößen sind konfigurierbar und betragen normalerweise 128 Megabyte (MB) oder 256 MB, was bedeutet, dass eine 1-GB-Datei acht 128 MB-Blöcke für ihre grundlegenden Speicheranforderungen verbraucht.
HDFS ist robust, sodass diese Blöcke im Falle eines Serverfehlers im gesamten Cluster repliziert werden. Wie behält HDFS alle diese Stücke im Auge? Die kurze Antwort ist Dateisystem Metadaten .
Metadaten sind definiert als "Daten über Daten. "Stellen Sie sich HDFS-Metadaten als Vorlage für eine detaillierte Beschreibung der folgenden Punkte vor:
-
Wann wurde die Datei erstellt, darauf zugegriffen, geändert, gelöscht usw.
-
Wo die Blöcke der Datei im Cluster gespeichert sind < Wer hat die Rechte zum Anzeigen oder Ändern der Datei
-
Wie viele Dateien sind im Cluster gespeichert
-
Wie viele Datenknoten im Cluster vorhanden sind
-
Der Speicherort des Transaktionslogs für den Cluster
-
HDFS Metadaten werden im NameNode gespeichert, und während der Cluster aktiv ist, werden alle Metadaten in den physischen Speicher des NameNode-Servers geladen. Je größer der Cluster ist, desto größer ist der Metadaten-Footprint.
Was genau macht ein Blockserver? Überprüfen Sie die folgende Liste:
Speichert die Datenblöcke im lokalen Dateisystem des Servers. HDFS ist auf vielen verschiedenen Betriebssystemen verfügbar und verhält sich unter Windows, Mac OS oder Linux genauso.
-
Speichert die Metadaten eines Blocks im lokalen Dateisystem basierend auf der Metadatenvorlage im NameNode.
-
Führt periodische Validierungen von Dateiprüfsummen durch.
-
Sendet dem NameNode regelmäßige Berichte darüber, welche Blöcke für Dateivorgänge verfügbar sind.
-
Stellt auf Anfrage Metadaten und Daten für Clients bereit. HDFS unterstützt den direkten Zugriff auf die Datenknoten von Clientanwendungsprogrammen.
-
Leitet Daten basierend auf einem "Pipelining" -Modell an andere Datenknoten weiter.
-
Die Blockplatzierung auf den Datenknoten ist für die Datenreplikation und die Unterstützung für das Pipelining von Daten von entscheidender Bedeutung. HDFS speichert eine Kopie jedes Blocks lokal. HDFS nimmt die Datenreplizierung und die Ausfallsicherheit ernst.