Obwohl Hadoop seit einigen Jahren als DIE Lösung zur Speicherung und Verarbeitung sehr großer Datenmengen gehandelt und sogar als Synonym für Big Data verwendet wird, ist das Software-Framework keineswegs die beste Lösung für alle Anwendungsszenarien. Selbst der Chef der Analyse-Abteilung von Facebook, Ken Rudin, rät von einem Gebrauch von Hadoop als Allheilmittel ab:

“Hadoop isn’t always the best tool for what we need to do”, teilte er dem CIO-Magazin mit.

Wie kommt er (und wir) zu einer solchen Aussage? Um die – gar nicht so wenigen – Schwächen von Hadoop zu erkennen, sollte man zunächst verstehen, wie Hadoop funktioniert.

Hadoop für Non-Geeks

Hadoop ist ein freies, in der Java-Programmiersprache geschriebenes Framework – das bedeutet, es ist kein fertiges Programm, sondern lediglich eine Art Rahmen bzw. Gerüst, innerhalb dessen der Programmierer dann eine Anwendung erstellt. Es dient der Speicherung und Verarbeitung sehr großer Datenmengen („Big Data“) aus mehreren Millionen Dateien. Dies gelingt durch die Grundidee, Rechenaufgaben in kleine Teile zu zerlegen, auf eine Vielzahl von Rechnern zu verteilen, parallel abzuarbeiten und die Ergebnisse am Ende wieder zusammenzuführen. Die Parallelisierung löst das Hindernis, an dem klassische Datenverarbeitungsprogramme scheitern: Die gewaltigen Datenmengen, die wir heutzutage händeln müssen, sind oftmals zu groß für einen einzelnen Prozess und das ausführende Rechnersystem.

Hadoop besteht aus zwei Hauptelementen: Dem Hadoop Distributed File System (HDFS) sowie den MapReduce-Algorithmen von Google. Das HDFS-Dateisystem zerlegt alle Dateien, die gespeichert werden sollen, in kleine Teile mit einheitlicher Größe. Diese „Datenblöcke“ werden anschließend auf tausenden von vernetzten Computern („Computer-Cluster“ bzw. „Knoten“), die in diversen Rechenzentren bereitstehen, abgelegt und gespeichert. Um zu vermeiden, dass bei dem Ausfall eines Rechners Informationen verloren gehen, wird jeder Datenblock repliziert und mehrmals abgelegt. Anschließend werden alle Daten (inklusive der replizierten) mit den MapReduce-Algorithmen an ihren Ablageorten parallel verarbeitet: Die Map-Funktion erzeugt aus dem gesamten Input eine Liste von Zwischenresultaten, die anschließend durch die Reduce-Funktion komprimiert, weiter aufbereitet und analysiert werden.

In der Tat ist diese Methode fortschrittlich und scheint in der Theorie unschlagbar. Der Anwender jedoch wird mit etlichen Herausforderungen und Schwächen konfrontiert, denen Hadoop nicht ohne weiteres begegnen kann.


whitepaper-situationalisierung


Komplizierte Anwendung

Der Aufbau, Betrieb und die Unterstützung der Hadoop-Cluster ist unglaublich kompliziert und erfordert eine lange Einarbeitungszeit. Marketers oder UX-Menschen, deren Fragen durch die Datenanalyse beantwortet werden sollen, können mit solchen Anwendungen nicht umgehen, sodass sie an die Daten in Hadoop nur sehr schwer herankommen. Hierzu müssen Unternehmen speziell ausgebildete Fachkräfte wie Programmierer, Statistiker und Data Scientists einstellen. Keine leichte und vor allem keine billige Aufgabe bei dem derzeitigen Fachkräftemangel, der im Big Data- und Analyse-Bereich herrscht.

Unzureichende Datenverarbeitung

Bei der Hadoop-Implementierung werden für jeden Prozessschritt eigene Betriebssystemprozesse gestartet, sodass das Verfahren grundsätzlich etliche Sekunden Übermittlungszeit („Overhead“) benötigt. Dadurch ist es nicht möglich, interaktive Analysen zu fahren, wie es bspw. auf relationalen Datenbanken für kleine Datenmengen möglich ist. Relationale Datenbanken kann man sich als eine Sammlung von Tabellen („Relationen“) vorstellen, in welchen Datensätze abgespeichert sind und verwaltet werden können. Im Gegensatz zu Hadoop ermöglichen solche Relationen eine Sortierung, Filterung und In-Beziehung-Setzen der Daten. Hadoop eignet sich daher zunächst nur für die Speicherung und Vorverarbeitung von Big Data.

Schwere Implementierung in die IT-Infrastruktur

Könnte man in der Konsequenz nicht einfach ein Datenanalyse- und/oder Visualisierungsprogramm an Hadoop anlagern? – Leider ist dies leichter gesagt, als getan: Denn zum gegenwärtigen Zeitpunkt verträgt sich Hadoop nicht sonderlich gut mit den gängigen Tools. Um die gespeicherten Daten für andere Komponenten der IT-Infrastruktur zugänglich zu machen, bedarf es weiterer zusätzlicher Einstellungen und Schnittstellen, die nur über sehr komplexe Programmierumwege gelingen. Hierzu gehört bspw. auch, dass Hadoop von Haus aus keine SQL-Schnittstelle hat, d.h. nicht an eine relationale Datenbank angebunden werden kann bzw. nicht einfach eine vorhandene relationale Datenbank ersetzen kann. Mangelnde Datensicherheit Hadoop-Systeme sind größtenteils in web-zentrierten Unternehmen entstanden, die in erster Linie mit öffentlichen Daten arbeiten. Die Folge: Das Sicherheitsmodell ist nicht ausgereift! So benutzt es z.B. keine Verschlüsselung auf Lager- und Netzwerkebene. Beim Arbeiten mit komplexen Applikationen wird das Sicherheitssystem sogar standardmäßig deaktiviert. Nicht zuletzt gilt die Programmiersprache Java, in der Hadoop geschrieben ist, als die anfälligste Sprache für Cyberkriminalität.

Keine Eignung für kleinere Datenmengen

Hadoop ist für kleinere Datenmengen so gut wie nicht geeignet, da es in jedem Fall eine relativ große Infrastruktur für die Redundanzen und Replikationen benötigt. Auch der MapReduce Algorithmus verursacht bei kleinen Datenmengen eher einen Overhead als einen Zeitgewinn im Vergleich zur direkten relationalen Datenbank-Abfrage.

Mangelnde Flexibilität

Bevor Hadoop verwendet wird, muss sich der Nutzer genau darüber im Klaren sein, wie groß die zu verarbeitende Datenmenge sein wird. Bei unbekannten Workloads sowie auch bei verschiedenen und extrem variierenden Workloads ist es fast unmöglich, die Hadoop-Architektur zu optimieren.

Keine Echtzeit-Analysen auf Rohdaten

Wie wir gesehen haben, hilft Hadoop zwar dabei, Big Data dauerhaft abzuspeichern, ist aber wenig hilfreich, wenn es darum geht, die Datenvolumen schnell und effektiv abzurufen sowie aufzubereiten. Das Problem: Hadoop speichert die Daten zunächst in den Festplattensystemen der Computer-Cluster, muss sie anschließend zur Bearbeitung jedoch von der Festplatte in den Arbeitsspeicher laden – ein äußerst zeitraubender, aufwendiger und komplexer Vorgang. Die Folge: Hadoop ist nicht echtzeitfähig. Unternehmen, die mit Hadoop arbeiten, können keine operationalen Daten für Optimierungen und/oder Performancesteigerungen verwenden. Sie werden damit um die gewinnbringendste und zukunftsträchtigste Aussicht von Big Data gebracht.

Aussicht

Der Grund, aus dem Hadoop trotz der vielen Beschränkungen seit Jahren gehyped wird, ist schnell gefunden: Bisher ließen sich echte Big Data-Anwendungen (mehrere Terabyte und polystrukturierte Daten) ohne Hadoop wirtschaftlich kaum realisieren. Heute allerdings gibt es bereits mehrere alternative, vielversprechende Ansätze, die für einige Anwendungsfälle besser geeignet sind als Hadoop. Als richtungsweisend könnten sich bspw. In-Memory-Datenbanken (nutzen den Arbeitsspeicher von Computern als Datenspeicher) und/oder Shared-Nothing-Systeme (jeder Knoten erhält einen Teil der Gesamtdaten, die er unabhängig und eigenständig bearbeiten kann) erweisen. Lesen Sie hierzu unseren Post über Operational Intelligence.


whitepaper-situationalisierung


Weiterführende Links

odoscope-newsletter
whitepaper-situationalisierung-odoscope