Startseite

Themen

HDFS

Was ist Hadoop Distributed File System (HDFS)?
Lernen Sie die Cloud-Datenlösungen von IBM kennen Für KI-Updates anmelden
Illustration mit einer Collage aus Wolken-Piktogrammen und einem Tortendiagramm

Aktualisiert: 14. Juni 2024
Mitwirkender: Jim Holdsworth

Was ist HDFS?

Hadoop Distributed File System (HDFS) ist ein Dateisystem, das große Datenmengen verwaltet, die auf handelsüblicher Hardware ausgeführt werden können. HDFS ist das beliebteste Datenspeichersystem für Hadoop und kann verwendet werden, um einen einzelnen Apache Hadoop-Cluster auf Hunderte oder sogar Tausende von Knoten zu skalieren. Da HDFS Big Data mit hohem Durchsatz effizient verwaltet, kann es als Datenpipeline verwendet werden und eignet sich ideal zur Unterstützung komplexer Datenanalysen.

HDFS basiert auf einem Open-Source-Framework und ist neben MapReduce und YARN einer der Hauptkomponente von Apache Hadoop. HDFS sollte nicht mit Apache HBase verwechselt oder durch dieses ersetzt werden. HBase ist ein spaltenorientiertes, nicht-relationales Datenbankmanagementsystem, das auf HDFS aufbaut und mit seiner In-Memory-Verarbeitungs-Engine Echtzeit-Datenanforderungen besser unterstützen kann.

Generative KI und ML für Unternehmen

Erfahren Sie mehr über die wichtigsten Vorteile generativer KI und wie Unternehmen ihr Geschäft ankurbeln können.

Ähnliche Inhalte Registrieren Sie sich für das E-Book zu KI-Datenspeichern
Vorteile von HDFS
Fehlertoleranz und schnelle Wiederherstellung nach Hardwareausfällen

Da eine HDFS-Instanz aus Tausenden von Servern bestehen kann, ist der Ausfall mindestens eines Servers immer möglich. HDFS wurde so konzipiert, dass Fehler erkannt und automatisch schnell behoben werden können. Die Data Replication mit mehreren Kopien über viele Knoten hinweg trägt zum Schutz vor Datenverlust bei. HDFS bewahrt mindestens eine Kopie auf einem anderen Rack als alle anderen Kopien auf. Dieser Datenspeicher in einem großen Cluster über Knoten hinweg erhöht die Zuverlässigkeit. Darüber hinaus kann HDFS Speicher-Snapshots erstellen, um Point-in-Time-Informationen (PIT) zu speichern.

Zugriff auf Streaming-Daten

HDFS ist eher für die Stapelverarbeitung als für die interaktive Nutzung gedacht, daher liegt der Schwerpunkt bei der Entwicklung auf hohen Datendurchsatzraten, die den Streaming-Zugriff auf Datensätze ermöglichen.

Speicherung großer Datensätze

HDFS eignet sich für Anwendungen, die Datensätze mit einer Größe von typischerweise Gigabyte bis Terabyte verwenden. HDFS bietet eine hohe aggregierte Datenbandbreite und kann auf Hunderte von Knoten in einem einzigen Cluster skaliert werden und dabei helfen, High Performance Computing (HPC)-Systeme zu betreiben. Data Lakes werden oft auf HDFS gespeichert. Data Warehouses haben HDFS ebenfalls verwendet, aber jetzt seltener, da der Betrieb als zu komplex wahrgenommen wird.

Kosteneffizienz

Da die Daten virtuell gespeichert werden, können die Kosten für den Datenspeicher von Metadaten und Namespace-Daten des Dateisystems reduziert werden.

Portabilität

Um die Einführung zu erleichtern, ist HDFS so konzipiert, dass es auf mehreren Hardwareplattformen eingesetzt werden kann und mit verschiedenen zugrunde liegenden Betriebssystemen kompatibel ist, darunter Linux, macOS und Windows. Darüber hinaus können Hadoop Data Lakes unstrukturierte, halbstrukturierte und strukturierte Datenbanken unterstützen, um maximale Flexibilität zu gewährleisten. Hadoop ist zwar in Java programmiert, aber auch andere Sprachen (darunter C++, Perl, Python und Ruby) ermöglichen die Nutzung in der Data Science.

Verarbeitungsgeschwindigkeit

HDFS verwendet eine Cluster-Architektur, um einen hohen Durchsatz zu erzielen. Um den Netzwerkverkehr zu reduzieren, speichert das Hadoop-Dateisystem Daten in DataNodes, in denen Berechnungen stattfinden, anstatt die Daten zur Berechnung an einen anderen Ort zu verschieben. 

Skalierbarkeit

Mit seinen horizontalen und vertikalen Skalierbarkeitsfunktionen kann HDFS schnell an die Datenanforderungen eines Unternehmens angepasst werden. Ein Cluster kann Hunderte oder Tausende von Knoten umfassen.

HDFS-Architektur und wie sie funktioniert

HDFS verfügt über eine Director/Worker-Architektur.

  • Ein HDFS-Cluster umfasst einen  NameNode, der als Director-Server fungiert. Der NameNode verfolgt den Status aller Dateien, die Dateiberechtigungen und den Speicherort jedes Blocks. Die NameNode-Software verwaltet den Dateisystem-Namespace, der wiederum den Client-Zugriff auf die Dateien verfolgt und steuert und Vorgänge wie das Öffnen, Schließen und Umbenennen von Verzeichnissen und Dateien ausführt.

    Der Dateisystem-Namensraum unterteilt Dateien auch in Blöcke und ordnet die Blöcke den DataNodes zu, die den Worker-Teil des Systems bilden. Durch die Konfiguration mit nur einem einzigen NameNode pro Cluster vereinfacht die Systemarchitektur die Datenverwaltung und die Speicherung der HDFS-Metadaten. Darüber hinaus wird eine größere Sicherheit erhöht, indem verhindert wird, dass Benutzerdaten durch den NameNode fließen.

  • In einem Cluster gibt es meistens einen DataNode pro Knoten, der den Datenspeicher innerhalb des Knotens verwaltet. Die DataNode-Software verwaltet die Erstellung, Löschung und Replikation von Blöcken sowie Lese- und Schreibanfragen. Jeder DataNode speichert HDFS-Daten separat in seinem lokalen Dateisystem, wobei jeder Block als separate Datei gespeichert wird. DataNodes sind die Worker-Knoten (oder Hadoop-Daemons, die Prozesse im Hintergrund ausführen) und können auf handelsüblicher Hardware ausgeführt werden, wenn ein Unternehmen Kosten sparen möchte.

Sowohl NameNode als auch DataNode sind Software, die für den Einsatz auf einer Vielzahl von Betriebssystemen (OS) geschrieben wurde, wobei es sich häufig um das Betriebssystem GNU/Linux handelt. HDFS wurde in der Programmiersprache Java entwickelt, d. h. jede Maschine, die Java unterstützt, kann auch die NameNode- oder DataNode-Software verwenden.

Bei der Bereitstellung wird oft eine einzelne dedizierte Maschine verwendet, auf der die NameNode-Software ausgeführt wird. Auf allen anderen Maschinen im Cluster wird dann eine einzelne Instanz der DataNode-Software ausgeführt. Bei Bedarf, aber nur selten, ist eine Konfiguration von mehr als einem DataNode auf einem einzelnen Computer möglich.

Wenn Daten in HDFS übertragen werden, werden sie in Blöcke unterteilt und an verschiedene Knoten in einem Cluster verteilt. Da die Daten in mehreren DataNodes gespeichert sind, können die Blöcke auf andere Knoten repliziert werden, um eine parallele Verarbeitung zu ermöglichen. Das verteilte Dateisystem (DFS) enthält Befehle für den schnellen Zugriff auf Daten sowie für das Abrufen, Verschieben und Anzeigen von Daten. Bei Replikaten von Datenblöcken über mehrere DataNodes hinweg kann eine Kopie entfernt werden, ohne dass die Gefahr besteht, dass die anderen Kopien beschädigt werden. Die Standard-HDFS-Blockgröße beträgt 128 MB (Hadoop 2.x), was für manche groß erscheinen mag. Die Blockgröße dient allerdings dazu, die Suchzeiten zu minimieren und die erforderlichen Metadaten zu reduzieren.

Um das Risiko zu minimieren und die Verarbeitung zu beschleunigen, wird ein DataNode aus dem Cluster entfernt und der Betrieb ohne diesen DataNode fortgesetzt, wenn ein DataNode keine Signale mehr an den NameNode sendet. Wenn dieser DataNode später in Betrieb genommen wird, wird er einem neuen Cluster zugewiesen.

HDFS bietet flexible Datenzugriffsdateien über verschiedene Schnittstellen: HDFS wird mit einer nativen Java-API geliefert, während für die Java-API ein Wrapper in der Programmiersprache C verfügbar ist. Außerdem kann ein HTTP-Browser zum Durchsuchen der Dateien einer HDFS-Instanz verwendet werden. 

Der Namespace des Dateisystems

HDFS ist mit einer traditionellen Dateihierarchie organisiert, in der der Benutzer Verzeichnisse erstellen kann, die mehrere Dateien enthalten. Die Hierarchie des Dateisystem-Namensraums ähnelt der herkömmlicher Dateisysteme, bei denen der Benutzer Dateien erstellt und entfernt, sie zwischen Verzeichnissen verschiebt und Dateien umbenennen kann.

Der Dateisystem-Namespace wird vom NameNode verwaltet, der Aufzeichnungen über alle Änderungen im Dateisystem-Namensraum führt. Hier kann die Gesamtzahl der für eine Anwendung zu speichernden Replikate angegeben werden. Diese Zahl ist der Replikationsfaktor für diese Datei. Der Replikationsfaktor kann bei der Erstellung der Datei festgelegt und später bei Bedarf geändert werden.

Datenreplikation

Um eine zuverlässige Speicherung zu gewährleisten, speichert HDFS große Dateien an mehreren Speicherorten in einem großen Cluster, wobei jede Datei in einer Folge von Blöcken gespeichert wird. Jeder Block wird in einer Datei derselben Größe gespeichert, mit Ausnahme des letzten Blocks, der sich mit dem Hinzufügen von Daten füllt. 

Für zusätzlichen Schutz können HDFS-Dateien nur von einem einzigen Autor zu einem beliebigen Zeitpunkt einmal beschrieben werden. Um sicherzustellen, dass alle Daten wie angewiesen repliziert werden. Der NameNode erhält einen Herzschlag (einen regelmäßigen Statusbericht) und einen Blockreport (die Block-ID, den Generierungsstempel und die Länge jedes Blockreplikats) von jedem an den Cluster angeschlossenen DataNode. Der Empfang eines Herzschlages zeigt an, dass der DataNode ordnungsgemäß funktioniert.

Der NameNode wählt die Rack-ID für jeden DataNode mithilfe eines Prozesses namens Hadoop Rack Awareness aus, um Datenverluste zu verhindern, falls ein ganzes Rack ausfällt. Dies ermöglicht auch die Nutzung der Bandbreite mehrerer Racks beim Lesen von Daten.

HDFS-Beispiel und Anwendungsfälle

Stellen Sie sich eine Datei vor, die Telefonnummern für ein ganzes Land enthält. Die Nummern für Personen, deren Nachname mit A beginnt, könnten auf Server 1 gespeichert sein, B auf Server 2 und so weiter. Mit Hadoop würden Teile dieses Telefonbuchs in einem einzigen Cluster gespeichert werden, und um das gesamte Telefonbuch zu rekonstruieren, würde eine Anwendung die Blöcke von jedem Server im Cluster benötigen.

Um eine hohe Verfügbarkeit zu gewährleisten, falls ein Server ausfällt, repliziert HDFS diese kleineren Teile standardmäßig auf zwei weitere Server. (Diese Redundanz kann auf Dateibasis oder für eine gesamte Umgebung erhöht oder verringert werden. Zum Beispiel benötigt ein Entwicklungs-Hadoop-Cluster in der Regel keine Datenredundanz.)

Diese Redundanz ermöglicht es dem Hadoop-Cluster auch, die Arbeit in kleinere Einheiten aufzuteilen und diese Aufgaben auf allen Servern im Cluster auszuführen, um eine bessere Skalierbarkeit zu erreichen. Schließlich profitiert ein Unternehmen von dem Standort oder Daten, der bei der Arbeit mit großen Datensätzen von entscheidend ist.

HDFS kann durch effektive Skalierung auch künstliche Intelligenz (KI) und maschinelles Lernen (ML) ermöglichen. Zunächst müssen Daten in ausreichender Menge gespeichert werden, um ML-Modelle zu trainieren. Anschließend muss auf diese riesigen Datensätze zugegriffen werden.

Jedes Unternehmen, das große Datensätze – bis zu Petabyte – erfasst, speichert und nutzt, könnte die Verwendung von HDFS in Betracht ziehen. Einige branchenspezifische Anwendungsfälle zeigen, wie HDFS implementiert werden könnte.

  • Energie: Wenn ein Stromversorger Phasor Measurement Units (PMUs) zur Leistungsüberwachung der Smart Grids in seinen Übertragungsnetzen einsetzt, kann er enorme Datenmengen mit Tausenden von Datensätzen pro Sekunde sammeln. HDFS könnte das benötigte kostengünstige und hochverfügbare Dateisystem sein, auf das sie sich verlassen können.

  • Gesundheitswesen: Die Menge an medizinischen Unterlagen wächst täglich. Medizinisches Equipment und Sensordaten der Patienten können effizient gesammelt und gespeichert werden, um eine schnellere Behandlung und Forschung zu ermöglichen.

  • Marketing: Daten aus Kundenbeziehungsmanagement- (CRM) und Point-of-Sale-Systemen, Kampagnenergebnisse und soziale Medien – vieles davon unstrukturiert – müssen für Analysen und als Leitfaden für zukünftige Marketingmaßnahmen gesammelt werden. HDFS-Cluster könnten eine budgetfreundliche Lösung für die Speicherung und Analyse der erzeugten großen Datenmengen bieten.

  • Öl und Gas:  Ein HDFS-Cluster kann dabei helfen, alle Daten, die in verschiedenen Formaten eingehen, zu vereinheitlichen, um sie für die Big-Data-Analyse verfügbar zu machen. Dies kann alles umfassen – von 3D-Erdmodellen bis hin zu Videos, Kundeneinkäufen oder Gerätesensordaten.

  • Einzelhandel:  Um ihre Kunden besser zu verstehen, können Einzelhändler Daten aus verschiedenen Quellen zusammenstellen und analysieren. Dazu gehören Verkaufsdaten, Interaktionen mit dem Kundenservice und soziale Medien, sowohl unstrukturierte als auch strukturierte Daten, um neue Strategien zur Kundenbindung zu entwickeln.

  • Telekommunikation:  HDFS kann Telekommunikationsunternehmen dabei helfen, robuste Netzwerkpfade aufzubauen, vorausschauende Wartung durchzuführen, vielversprechende Optionen für die Netzwerkerweiterung aufzuzeigen und das Kundenverhalten zu analysieren.
Die Entstehung von HDFS

Der Ursprung von Hadoop war laut den Mitbegründern Mike Cafarella und Doug Cutting ein 2003 veröffentlichtes Google File System-Papier. Es folgte ein zweites Papier mit dem Titel „MapReduce: Simplified Data Processing on Large Clusters.“ Die Entwicklung einer frühen Suchmaschine namens Apache Nutch wurde begonnen, aber dann wechselte die Arbeit mit Doug Cutting 2006 zu Yahoo.

Hadoop wurde nach einem Spielzeugelefanten benannt, der Cutting's Sohn gehörte. (Daher das Logo.) Der ursprüngliche Hadoop-Code basierte größtenteils auf Nutch, überwand jedoch dessen Skalierbarkeitsbeschränkungen und enthielt sowohl die frühen Versionen von HDFS als auch MapReduce.

Die Programmbibliothek im Hadoop-Ökosystem wächst weiter. Zusätzlich zu HDFS gibt es auch:HBase (eine NoSQL-Datenbank), Mahout, Spark MLLib (Algorithmus-Bibliotheken für maschinelles Lernen), MapReduce (programmgestützte Datenverarbeitung), Oozie (Jobplaner ), PIG und HIVE (abfragebasierte Datenverarbeitungsdienste), Solar und Lucene (für die Suche und Indexierung),Spark (Datenverarbeitung im Arbeitsspeicher), YARN (Yet Another Resource Negotiator) und Zookeeper (Clusterkoordination).

Die Open-Source-Software innerhalb des Hadoop-Ökosystems wird nun von der Apache Software Foundation1 verwaltet – einer weltweiten Gemeinschaft für Softwareentwickler und Software-Mitwirkende.

 

Weiterführende Lösungen
Ein offener und regulierter Hybrid-Datenspeicher

watsonx.data ist jetzt verfügbar – ein zweckmäßiger Datenspeicher auf der Grundlage einer offenen Data Lakehouse-Architektur zur standortunabhängigen Skalierung von KI-Workloads für alle Ihre Daten.

watsonx.data erkunden
Verbessern Sie Ihre Analysen mit Big-Data-Lösungen von IBM

IBM und Cloudera haben sich zusammengetan, um eine branchenführende Hadoop-Distribution für Unternehmen anzubieten, die ein integriertes Ökosystem aus Produkten und Dienstleistungen umfasst, um schnellere Analysen im großen Maßstab zu unterstützen.

Big Data-Möglichkeiten mit IBM erkunden
Ressourcen Die Dreifaltigkeit der Datenplattform: Wettbewerbsfähig oder ergänzend?

Es entstehen mindestens drei verschiedene Datenplattformlösungen. Erfahren Sie mehr über die Beziehung zwischen Data Lakehouse, Data Fabric und Data Mesh.

Big Data verstehen – jenseits des Hypes

Lesen Sie diese praktische Einführung in die nächste Generation von Datenarchitekturen. Es wird die Rolle der Cloud und der NoSQL-Technologien vorgestellt und die praktischen Aspekte von Sicherheit, Datenschutz und Governance erörtert.

Was ist Presto?

Presto bietet Unternehmen jeder Größe eine schnelle und effiziente Möglichkeit zur Analyse von Big Data aus verschiedenen Quellen, einschließlich lokaler Systeme und der Cloud.

Machen Sie den nächsten Schritt

Skalieren Sie KI-Workloads für alle Ihre Daten, überall, mit IBM watsonx.data, einem zweckmäßigen Datenspeicher, der auf einer offenen Lakehouse-Architektur basiert.

watsonx.data erkunden Buchen Sie eine Live-Demo
Fußnoten

1 Apache Software Foundation (Link befindet sich außerhalb von ibm.com)