Was ist das verteilte Hadoop-Dateisystem (HDFS)? Architektur, Funktionen und Betrieb

Veröffentlicht: 2020-02-03

Hadoop Distributed File System oder HDFS ist das primäre Speichersystem von Hadoop. Es speichert große Datendateien, die auf handelsüblicher Hardware ausgeführt werden. Dieses Speichersystem ist skalierbar, leicht erweiterbar und fehlertolerant.

Wenn zu viele Daten auf einem physischen Computer gespeichert sind, wird der Speicher auf mehrere Computer aufgeteilt, um Datenverluste zu vermeiden. HDFS ist ein solches verteiltes Dateispeichersystem, das Speichervorgänge auf vielen physischen Maschinen verwaltet. Hier ist ein HDFS-Tutorial, damit Sie besser verstehen, wie dieses System funktioniert. Beginnen wir mit seiner Architektur.

Inhaltsverzeichnis

HDFS-Architektur

Hadoop Distributed File System hat eine Master-Slave-Architektur mit den folgenden Komponenten:

  1. Namenode : Es ist die handelsübliche Hardware, die sowohl die Namenode-Software als auch das Linux/GNU-Betriebssystem enthält. Die Namenode-Software kann problemlos auf handelsüblicher Hardware ausgeführt werden, ohne dass irgendwelche Probleme auftreten. Als Masterserver fungiert das System mit namenode als Komponente. Es führt Aufgaben aus, zu denen die Regulierung des Zugriffs von Clients auf Dateien, die Verwaltung des Namensraums des Dateisystems und die Ausführung von Operationen gehören, darunter das Öffnen, Schließen und Umbenennen von Verzeichnissen und Dateien.
  2. Datanode : Dies ist eine Standardhardware, die die Datenknotensoftware und das Linux/GNU-Betriebssystem enthält. Knoten in einem Cluster haben immer Datenknoten, die ihnen zugeordnet sind. Diese Knoten sind für die Verwaltung des Speichers der Commodity-Hardware/des Commodity-Systems verantwortlich. Zu den Aufgaben, die Datenknoten ausführen, gehören Lese-/Schreiboperationen gemäß Client-Anforderung und Erstellung, Replikation und Löschung von Blöcken basierend auf den Anweisungen des Namensknotens.
  3. Block : Die gesamten Benutzerdaten werden in HDFS-Dateien gespeichert. Jede Datei, die zu einem bestimmten Dateisystem gehört, wird in ein oder mehrere Segmente unterteilt, die dann in Datenknoten gespeichert werden. Die Dateisegmente, in die Dateien unterteilt werden, sind Blöcke. Die kleinsten Daten, die HDFS lesen oder schreiben kann, sind also ein Block. Anfangs ist jeder Block 64 MB groß. Diese Größe kann jedoch entsprechend den HDFS-Konfigurationsänderungen erhöht werden.

Die HDFS-Architektur vermittelt ein klares und eindeutiges Bild der HDFS-Arbeiten. Es besteht aus mehreren Datenknoten, aber nur einem einzigen Namensknoten. Metadaten werden im Namensknoten gespeichert, während der eigentliche Arbeiter der beiden Arten von Knoten der Datenknoten ist. Knoten sind in verschiedenen Racks organisiert, auf denen Datenblöcke gespeichert werden, um die Fehlertoleranz und Datenzuverlässigkeit zu verbessern. Die Clients müssen mit dem Namenode interagieren, um eine Datei zu lesen/schreiben. Der Cluster verfügt über mehrere Datenknoten, die die lokale Festplatte verwenden, um verfügbare Daten zu speichern. Datanode und Namenode sind ständig miteinander in Kontakt. Datanode ist auch für die Replikation von Daten mithilfe der Replikationsfunktion auf verschiedene Datenknoten verantwortlich.

Lese- und Schreiboperationen finden bei HDFS auf der kleinsten Ebene, also der Blockebene, statt. Das Konzept der Datenreplikation ist für die Funktionsweise von HDFS von zentraler Bedeutung – eine hohe Datenverfügbarkeit wird während eines Knotenausfalls sichergestellt, indem Kopien von Blöcken erstellt und diese im gesamten Cluster verteilt werden.

HDFS-Operationen

HDFS- und Linux-Dateisystem sind sich ziemlich ähnlich. HDFS ermöglicht es uns also, alle Operationen durchzuführen, die wir mit lokalen Dateisystemen gewohnt sind – wir können einen Director erstellen, Berechtigungen ändern, Dateien kopieren und vieles mehr. Wir haben auch mehrere Dateizugriffsrechte, einschließlich Lesen, Schreiben und Ausführen.

Lesevorgang in HDFS: Wenn Sie eine in HDFS gespeicherte Datei lesen möchten, müssen Sie mit namenode interagieren. Wie bereits erwähnt, werden alle Metadaten im Namenode gespeichert. Sobald Sie mit Namenode interagieren, erhalten Sie die Adresse des Datenknotens, in dem die gesuchte Datei gespeichert ist. Sie können dann mit dem Datanode interagieren, dessen Adresse Sie von namenode erhalten haben, und dann die Informationen von dort lesen.

Sie interagieren mit der API des Dateisystems, die namenode auffordert, die Blockadresse zu teilen. Vor der Übermittlung dieser Informationen prüft namenode, ob Sie berechtigt sind, auf diese Daten zuzugreifen oder nicht. Sobald diese Überprüfung abgeschlossen ist, teilt Namenode entweder den Block-Standort oder verweigert den Zugriff aufgrund von Einschränkungen.

Sie erhalten vom Namenode eine Form eines Tokens, das Sie für den Zugriff auf eine Datei dem jeweiligen Datanode vorzeigen müssen. Dies ist eine Form von Sicherheitsmechanismus, den HDFS einsetzt, um sicherzustellen, dass die richtige Person auf Daten zugreift. Der Datenknoten lässt Sie die Datei erst lesen, nachdem Sie das Token angezeigt haben.

Schreibvorgang: Der Schreibvorgang folgt demselben Anfangsmuster. Sie müssen den Namenode anfordern, damit Sie Daten schreiben können. Im Gegenzug erhalten Sie den Speicherort des Datenknotens, auf dem der Schreibvorgang ausgeführt werden muss. Sobald Sie mit dieser Operation fertig sind, beginnt der Datenknoten damit, diese Blöcke geschriebener Daten auf anderen Datenknoten zu replizieren. Sobald die Replikation abgeschlossen ist, erhalten Sie eine Bestätigung. Der Authentifizierungsmechanismus bei der Schreiboperation ist derselbe wie bei der Leseoperation.

HDFS-Funktionen

  1. Verfügbarkeit : Es gibt nicht allzu viele Dateisysteme, die mit der hohen Verfügbarkeit von HDFS ausgestattet sind. Das Dateisystem folgt einem Mechanismus zum Replizieren von Daten in Form von Blockkopien auf den Datenknoten (Slaves) in einem Cluster. Um auf diese Daten zuzugreifen, müssen Sie mit Datenknoten interagieren, die die Informationsblöcke enthalten, nach denen sie suchen.
  2. Zuverlässigkeit : Hadoop Distributed File System ist ein äußerst zuverlässiges Datenspeichersystem. Die Datenmenge, die auf HDFS gespeichert werden kann, reicht in Petabyte. Es verwendet einen Cluster, um alle seine Daten zu speichern, die in Blöcke aufgeteilt sind. Es verwendet dann Knoten des Clusters, um diese Blöcke zu speichern.
  3. Fehlertoleranz : Diese Funktion ist die Arbeitsstärke von HDFS unter Bedingungen, die nicht so förderlich sind, wie sie normalerweise sind. HDFS toleriert Fehler wie kein anderes Dateisystem. Es schützt Ihre Daten auch in der Zukunft vor unvorhergesehenen Auswirkungen. Wie bereits erwähnt, erfolgt die Replikation von Daten auf verschiedenen Maschinen. Was passiert, wenn eine dieser Maschinen nicht mehr funktioniert? Es hätte ein erhebliches Problem mit jedem anderen System sein können, aber nicht mit HDFS. Mit HDFS können Sie von jedem anderen Computer aus auf Ihre Daten zugreifen, der auch über eine Kopie der gesuchten Datenblöcke verfügt. Dies wird als echte Fehlertoleranz bezeichnet.
  4. Skalierbarkeit : HDFS verwendet verschiedene Knoten in einem Cluster, um Daten zu speichern. Wenn die Speicheranforderungen steigen, können Sie den Cluster jederzeit skalieren. Dies ist eine weitere einzigartige Funktion von HDFS. Das Dateiverteilungssystem bietet Ihnen zwei Mechanismen zum Skalieren des Clusters – horizontale und vertikale Skalierbarkeit.
  5. Replikation : Replikation ist eine Funktion, die HDFS von anderen Speichersystemen unterscheidet. Die Replikation minimiert die Fälle von Datenverlusten aufgrund eines ungünstigen Ereignisses, wie z. B. Knotenabsturz, Hardwarefehler und andere. Der Replikationsprozess wird regelmäßig und auf verschiedenen Maschinen durchgeführt. Es gibt also keinen Datenverlust, wenn eine Maschine ausfällt. Sie können jede andere Maschine verwenden, um Ihre Daten abzurufen.

HDFS-Ziele

  1. Verwalten riesiger Datensätze: Im Gegensatz zu anderen Dateiverteilungssystemen verfügt HDFS über die erforderliche Architektur, um Anwendungen mit riesigen Datensätzen zu verwalten. Abhängig von der Größe der betreffenden Datensätze kann es Hunderte von Knoten für jeden Cluster haben.
  2. Fehlererkennung und -wiederherstellung: Nicht viele können HDFS in seinen Fähigkeiten im Zusammenhang mit der Erkennung von Fehlern und deren angemessener Behandlung übertreffen. Eine große Anzahl von in Frage kommender Standardhardware macht HDFS häufigen Ausfällen von Komponenten ausgesetzt. Dies ist jedoch kein Nachteil. Jedes System, das mit solcher Commodity-Hardware zu tun hat, ist fehleranfällig. Es bleibt jedoch die Frage, ob das System in der Lage ist, diese Fehler schnell und automatisch zu erkennen und gleichzeitig eine Wiederherstellung bereitzustellen. HDFS ist auf jeden Fall fähig.
  3. Erhöhter Durchsatz: HDFS verarbeitet jede Aufgabe effizient, da die eigentliche Berechnung in der Nähe der Daten selbst durchgeführt wird. Dies ist besonders wichtig, wenn wir es mit riesigen Datensätzen zu tun haben. Dieser Mechanismus erhöht den Durchsatz und beseitigt das Problem des Netzwerkverkehrs erheblich.

Abschließend möchten wir sagen, dass HDFS große Datenmengen zuverlässig speichern kann, ohne die Auswirkungen eines Hardwareausfalls zu spüren. Es ist außerdem hochgradig fehlertolerant, hochverfügbar und hochgradig skalierbar.

Um die Tiefen von Hadoop zu bereisen und ein Experte zu werden, sehen Sie sich die PG-Zertifizierung von upGrad & BITS Pilani in Big Data & Analytics an. Holen Sie sich praktische Erfahrungen, direkt mit Branchenexperten, einem engagierten Mentor, BITS Pilani Alumni-Status und mehr.

Wenn Sie mehr über Big Data erfahren möchten, schauen Sie sich unser PG Diploma in Software Development Specialization in Big Data-Programm an, das für Berufstätige konzipiert ist und mehr als 7 Fallstudien und Projekte bietet, 14 Programmiersprachen und Tools abdeckt und praktische praktische Übungen enthält Workshops, mehr als 400 Stunden gründliches Lernen und Unterstützung bei der Stellenvermittlung bei Top-Unternehmen.

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Meistern Sie die Technologie der Zukunft – Big Data

Über 400 Lernstunden. 14 Sprachen & Tools. IIIT-B Alumni-Status.
Fortgeschrittenes Zertifikatsprogramm in Big Data vom IIIT Bangalore