Zum Inhalt springen

Was ist HDFS? Apache Hadoop Distributed File System

  • Daten

Das Apache Hadoop Distributed Filesystem (kurz: HDFS ist ein verteiltes Filesystem, um große Datenmengen im Bereich von Big Data abspeichern und auf verschiedenen Computern verteilen zu können. Dieses System ermöglicht es Apache Hadoop über eine Vielzahl von Nodes, also Computern, verteilt laufen zu können.

Was ist das Apache Hadoop Framework?

Apache Hadoop ist ein Softwareframework mit dem sich große Datenmengen auf verteilten Systemen schnell verarbeiten lassen. Es verfügt über Mechanismen, welche eine stabile und fehlertolerante Funktionalität sicherstellen, sodass das Tool für die Datenverarbeitung im Big Data Umfeld bestens geeignet ist. Das Softwareframework selbst ist eine Zusammenstellung aus insgesamt vier Komponenten.

Hadoop Common ist eine Sammlung aus verschiedenen Modulen und Bibliotheken, welche die anderen Bestandteile unterstützt und deren Zusammenarbeit ermöglicht. Unter anderem sind hier die Java Archive Dateien (JAR Files) abgelegt, die zum Starten von Hadoop benötigt werden. Darüber hinaus ermöglicht die Sammlung die Bereitstellung von grundlegenden Services, wie beispielsweise das File System.

Der Map-Reduce Algorithmus geht in seinen Ursprüngen auf Google zurück und hilft komplexe Rechenaufgaben in überschaubarere Teilprozesse aufzuteilen und diese dann über mehrere Systeme zu verteilen, also horizontal zu skalieren. Dadurch verringert sich die Rechenzeit deutlich. Am Ende müssen die Ergebnisse der Teilaufgaben wieder zu seinem Gesamtresultat zusammengefügt werden.

Der Yet Another Resource Negotiator (YARN) unterstützt den Map-Reduce Algorithmus, indem er die Ressourcen innerhalb eines Computer Clusters im Auge behält und die Teilaufgaben auf die einzelnen Rechner verteilt. Darüber hinaus ordnet er den einzelnen Prozessen die Kapazitäten dafür zu.

Das Apache Hadoop Distributed File System (HDFS) ist ein skalierbares Dateisystem zur Speicherung von Zwischen- oder Endergebnissen, auf das wir in diesem Beitrag genauer eingehen werden.

Wofür benötigen wir Apache HDFS?

Innerhalb des Clusters ist ein HDFS über mehrere Rechner verteilt, um große Datenmengen schnell und effizient verarbeiten zu können. Die Idee dahinter ist, dass Big Data Projekte und Datenanalysen auf großen Datenmengen beruhen. Somit sollte es ein System geben, welches die Daten auch stapelweise speichert und dadurch schnell verarbeitet. Das HDFS sorgt auch dafür, dass Duplikate von Datensätzen abgelegt werden, um den Ausfall eines Rechners verkraften zu können.

Laut der eigenen Dokumentation verfolgt Hadoop mit der Nutzung von HDFS die folgenden Ziele:

  • Schnelle Erholung von Hardware Ausfällen
  • Ermöglichung von Stream-Datenverarbeitung
  • Verarbeitung von riesigen Datensätzen
  • Leicht umziehbar auf neue Hard- oder Software

Aufbau eines Hadoop Distributed File Systems

Der Kern des Hadoop Distributed File Systems besteht darin die Daten auf verschiedene Dateien und Computer zu verteilen, sodass Abfragen schnell bearbeitet werden können und der Nutzer keine langen Wartezeiten hat. Damit der Ausfall einer einzelnen Maschine im Cluster nicht zum Verlust der Daten führt, gibt es gezielte Replikationen auf verschiedenen Computern, um eine Ausfallsicherheit zu gewährleisten.

Apache Hadoop arbeitet im Allgemeinen nach dem sogenannten Master-Slave-Prinzip. Innerhalb des Computerclusters haben wir einen Knoten, der die Rolle des sogenannten Masters übernimmt. Dieser führt in unserem Beispiel keine direkte Berechnung durch, sondern verteilt lediglich die Aufgaben auf die sogenannten Slave Knoten und koordiniert den ganzen Prozess. Die Slave Knoten wiederum lesen die Bücher aus und speichern die Worthäufigkeit und die Wortverteilung.

Dieses Prinzip wird auch bei der Datenspeicherung genutzt. Der Master verteilt Informationen aus dem Datensatz auf verschiedenen Slave Nodes und merkt sich, auf welchen Computern er welche Partitionen abgespeichert hat. Dabei legt er die Daten auch redundant ab, um Ausfälle kompensieren zu können. Bei einer Abfrage der Daten durch den Nutzer entscheidet der Masterknoten dann, welche Slaveknoten er anfragen muss, um die gewünschten Informationen zu erhalten.

Den Master innerhalb des Apache Hadoop Distributed File Systems bezeichnet man als Namenode. Die Slave Nodes wiederum sind die sogenannten Datanodes. Von unten nach oben lässt sich der schemahafte Aufbau wie folgt verstehen:

Das Bild zeigt den schemahaften Aufbau von HDFS.
HDFS Architektur | Quelle: Apache Hadoop

Der Client schreibt Daten in verschiedene Files, welche auf unterschiedlichen Systemen liegen können, in unserem Beispiel die Datanodes auf Rack 1 und 2. Pro Rechner in einem Cluster gibt es in der Regel einen Datanode. Diese verwalten vornehmlich den Speicher, der ihnen auf einem Rechner zur Verfügung steht. Im Speicher werden meist mehrere Files abgelegt, welche wiederum in sogenannte Blocks aufgesplittet sind.

Die Aufgabe des Namenodes besteht darin, sich zu merken, welche Blocks in welchem Datanode gespeichert sind. Zusätzlich verwalten sie die Files und können diese öffnen, schließen und nach Bedarf auch umbenennen.

Die Datanodes wiederum sind verantwortlich für die Lese- und Schreibprozesse des Clients, also des Anwenders. Von ihnen erhält der Client auch die gewünschten Informationen bei einer Abfrage. Gleichzeitig sind die Datanodes auch für die Replikation von Daten verantwortlich, um die Fehlertoleranz des Systems zu gewährleisten.

Was sind die Vorteile vom Hadoop Distributed File System?

Für viele Unternehmen wird das Apache Hadoop Framework auch aufgrund des HDFS immer interessanter als Data Lake, also als unstrukturierter Speicher für große Datenmengen. Dabei spielen verschiedene Punkte eine maßgebliche Rolle:

  • Möglichkeit große Datenmengen in einem verteilten Cluster zu speichern. Das ist in den meisten Fällen deutlich günstiger als die Informationen auf einer einzigen Maschine abzuspeichern.
  • Hohe Fehlertoleranz und dadurch hochverfügbare Systeme
  • Hadoop ist Open-Source und somit kostenlos nutzbar und der Quellcode einsehbar

Diese Punkte erklären die steigende Verbreitung von Hadoop und HDFS in vielen Anwendungen.

Das solltest Du mitnehmen

  • HDFS ist ein verteiltes Filesystem, um große Datenmengen im Bereich von Big Data abspeichern und auf verschiedenen Computern verteilen zu können.
  • Es ist Teil des Apache Hadoop Frameworks.
  • Der Masterknoten teilt die Datenmenge in kleinere Partionen auf und verteilt diese auf verschiedenen Computern, den sogenannten Slaveknoten.

Andere Beiträge zum Thema HDFS

  • Eine ausführliche Dokumentation zum Hadoop Distributed File System findest Du auf deren Seite.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner