HDFS stützt Hadoop

Strategie

Das Hadoop Distributed File System (HDFS) ist ein Dateisystem für hohen Datendurchsatz. Es bietet einige Vorteile, ist allerdings nicht unumstritten.

Das Open Source Projekt Apache Hadoop ist dafür ausgelegt, riesige Mengen an strukturierten und unstrukturierten Daten zu verarbeiten. Das dazugehörige Hadoop Distributed File System (HDFS) soll den Hochgeschwindigkeits-Zugriff auf Anwendungsdaten ermöglichen.BU: Die Standard Hadoop Architektur setzt auf offene Standards.

HDFS ist ein verteiltes Dateisystem und bringt gegenüber anderen Storage Dateisystemen einige Vorteile, hat aber auch Nachteile. Die Vorteile liegen in den niedrigen Kosten per Byte, den hohen Bandbreiten für Hadoop Workloads und der hohen Datenzuverlässigkeit. Nicht zur Geltung kommen diese Vorzüge, wenn ein System nicht für die Skalierbarkeit von Hadoop ausgelegt ist, keine Commodity Hardware oder Open Source Software enthält und nicht die MapReduce I/O Struktur nutzt. Außerdem gibt es noch zahlreiche kleinere Bugs.

Dennoch überwiegen die Vorteile, wenn das Design intelligent erfolgt und HDFS tatsächlich in erster Linie für Hadoop genutzt wird. Grundsätzlich ist HDFS fester Bestandteil von Hadoop. Es ist eine Java-Anwendung, die auf einem Standard Dateisystem aufsetzt. HDFS nutzt eine Shared Nothing Architektur, alle Knoten sind fest mit Disks verbunden (Direct Attached Storage, DAS). Das Dateisystem verwendet Write-Once, das heißt, eine Datei muss kopiert werden, wenn sie verändert werden soll.

HDFS organisiert Daten in Dateien und Verzeichnisse. Die Dateien werden in Blocks geschrieben mit einer Größe zwischen 64 und 128 MBs, die über Knoten verteilt abgelegt werden. Wohin diese Blocks gespeichert werden, wird über „Name Nodes“ festgelegt. Die Blocks werden typischerweise dreimal repliziert, um bei Ausfällen ersetzt zu werden. Checksummen sorgen für die Datenintegrität. Die Replizierung erfolgt als selbstheilender Vorgang und sorgt damit für Fehlertoleranz.