Hadoop

Das open-source Hadoop Distributed Filesystem (HDFS) ist wie ein normaler Windows-Fileserver, jedoch auf mehrere Server verteilt.

Ausfallsicherheit

Die Dateien können auf mehreren Servern redundant gehalten werden. Fällt einer dieser Server aus, werden die Daten automatisch auf einen anderen Server kopiert. Dadurch ist HDFS sehr ausfallsicher. HDFS läuft auf preiswerten Commodity Servern, teure Serverhardware wird nicht benötigt.

Skalierbarkeit - Preis

HDFS ist dafür ausgelegt, auf sehr vielen (bis zu tausenden) von Maschinen zu laufen. Da hierfür keine Lizenzkosten anfallen und die Hardwarekosten gering sind, ist das System preiswert zu skalieren.

Unterschied zum RDBMS

Ein klassisches Relationales Datenbank Management System (RDBMS) ist auf strukturierte Daten ausgelegt. Die Struktur der Datenbank in Tabellenform muss dabei schon zur Design-Zeit festliegen. Der Vorteil von RDBMS ist, dass die Abfragesprache (meist SQL) auf den Servern und dabei bei den Daten ausgeführt werden können. Dies ist sehr performant, da man Daten für die Abfragen nicht von den Servern herunterladen muss.

Ein klassisches Filesystem basiert auf Files und damit auf nicht-strukturierten Daten. Auf einem File-Server können Dokumente, Videos, Musik oder Grafiken gespeichert werden. Programme, die diese Dateien bearbeiten laufen dabei nicht auf dem Fileserver, sondern auf Applikationsservern oder Clients. Wird eine parallele Verarbeitung benötigt, so muss dies explizit programmiert werden.

HDFS ermöglicht das Verarbeiten der Daten direkt auf den Servern. Die Programme, die hierfür entwickelt werden, sind automatisch für parallele Verarbeitung ausgelegt, da die verwendeten Bibliotheken (Map-Reduce) parallele Verarbeitung kaspeln. Da das Datenaufkommen ständig steigt, muss auch das Fileserver-Cluster erweitert werden. Es ist hierbei ein großer Vorteil, wenn man lediglich das Cluster um neue Server erweitern muss, die Software aber ohne Veränderungen weiter verwendet werden kann.

Es gibt Erweiterungen zu Hadoop, die die Fähigkeiten relationaler Datenbank Management System auf der Hadoop Plattform zur Verfügung stellen.