Hadoop Distributed File System (HDFS)
Bei HDFS handelt es sich um ein hochverfügbares Dateisystem, das der Speicherung großer Datenmengen in einem Computercluster dient und somit innerhalb des Frameworks für die Datenhaltung zuständig ist. Dazu werden Dateien in Datenblöcke zerlegt und ohne Ordnungsschema redundant auf verschiedene Knoten verteilt. Den Entwicklern zufolge ist HDFS in der Lage, eine Anzahl an Dateien im dreistelligen Millionenbereich zu verwalten. Sowohl die Länge der Dateiblöcke als auch der Grad der Redundanz lassen sich individuell konfigurieren.
Das Hadoop-Cluster funktioniert grundsätzlich nach dem Master-Slave-Prinzip. Die Architektur des Frameworks besteht somit aus einem Master-Knoten, dem eine Vielzahl von Knoten als Slaves untergeordnet sind. Dieses Prinzip spiegelt sich auch im Aufbau des HDFS wieder, das auf einemNameNode und diversen untergeordneten DataNodes basiert. Der NameNode verwaltet sämtliche Metadaten zum Dateisystem, zu Verzeichnisstrukturen und Dateien. Die eigentliche Datenablage erfolgt auf den untergeordneten DataNotes. Um Datenverlust zu minimieren, werden Dateien dabei in einzelne Blöcke zerlegt und mehrfach auf verschiedenen Knoten gespeichert. Die Standardkonfiguration sieht vor, dass jeder Datenblock in dreifacher Ausführung vorliegt.
Jeder DataNode sendet dem NameNode in regelmäßigen Abständen ein Lebenszeichen, den sogenannten Heartbeat. Bleibt dieses Signal aus, erklärt der NameNote den jeweiligen Slave für „tot“ und sorgt mithilfe der Datenkopien auf anderen Knoten dafür, dass trotz des Ausfalls genügend Kopien der betreffenden Datenblöcke im Cluster verfügbar sind. Dem NameNode kommt somit eine zentrale Rolle innerhalb des Frameworks zu. Damit dieser nicht zum „Single Point of Failure“ wird, ist es üblich, diesem Master-Knoten einen SecondaryNameNode zur Seite zu stellen, der sämtliche Veränderungen bezüglich der Metadaten aufzeichnet und somit eine Wiederherstellung der zentralen Kontrollinstanz ermöglicht.
Im Übergang von Hadoop 1 zu Hadoop 2 wurde HDFS um weitere Sicherungssysteme erweitert: NameNode HA (High Availability) ergänzt das System um eine automatische Ausfallsicherung, bei der im Fall eines NameNode-Ausfalls automatisch eine Ersatzkomponente gestartet wird. Eine Snapshot-Funktion ermöglicht zudem, das System in einen früheren Status zurückzuversetzen. Darüber hinaus lassen sich durch die Erweiterung Federation mehrere NameNodes innerhalb eines Clusters führen.