Hadoop-Distributionen und -Grundlagen im Überblick

Hadoop mischt den Big-Data-Markt auf

14.11.2014
Von 
Thomas Drilling ist als freier IT-Journalist und IT-Consultant tätig. Seine Spezialgebiete sind Linux und Open-Source-Software.

Was ist Hadoop?

Das bei der Apache Software Foundation (ASF) gehostete Hadoop ist ein quelloffenes, in Java geschriebenes Framework zum dezentralen Speichern und parallelen Verarbeiten sehr großer Datenmengen mit Hilfe eines horizontal verteilten Dateisystems. Hadoop weist unterdessen eine Reifezeit von zehn Jahren auf. Seit der Version 2.0 des MapReduce-Algorithmus (MRv2), eingeführt mit der Hadoop-Version 2.3 (hadoop-0.23), hört das Framework auf den Namen NextGen MapReduce (YARN). YARN egalisiert eine Reihe von Defiziten der Vorgängerversion in den Bereichen Echtzeitfähigkeit und Sicherheit.

Hadoop wurde ursprünglich von Doug Cutting, dem Erfinder der Volltextsuch-Engine Apache Lucene, und Mike Cafarella bei Yahoo entwickelt, wobei sich der Name Hadoop als Maskottchen und Logo auf den Stoffelefanten von Cuttings kleinem Sohn beziehen soll. Seit 2008 ist Hadoop ein Top-Level-Projekt der ASF, die Weiterentwicklung wird aber maßgeblich von Yahoo-Spinoff Hortonworks vorangetrieben, das selbst eine der führenden Hadoop-Distributionen vermarktet.

Der wesentliche Unterschied zwischen Hadoop und konventioneller Datenhaltung zeigt sich in den beiden Prinzipien horizontale Skalierung (Scale-out) und Datenlokalität. Datenlokalität heißt, dass Hadoop die Daten im Gegensatz zur konventionellen Datenhaltung nicht zu den Servern überträgt, welche dann gegebenenfalls den gewünschten Programmcode zur Analyse ausführen. Vielmehr verteilt Hadoop den auszuführenden Programmcode auf genau die Server eines Hadoop-Cluster, welche die zugehörigen Daten vorhalten, führt den Code dann parallel aus und die Ergebnisse anschließend wieder zusammen. Der Vorteil dieses Ansatzes besteht darin, dass sich zeitintensive Dateiübertragungen über das Netzwerk auf ein Minimum reduzieren. Da ein Hadoop-Cluster horizontal skaliert ist, steigt die Geschwindigkeit der Datenverarbeitung in eine Größenordnung, die Big-Data-Projekte überhaupt erst ermöglicht, und erlaubt gleichzeitig den Einsatz preiswerter, austauschbarer Commodity-Hardware mit 86-/x64-CPUs. So ist es auch kleineren Unternehmen möglich, einen Hadoop-Cluster mit mehreren tausend Servern zu betreiben.

Ursprünglich bedingt echtzeitfähig

Im Prinzip folgt die Datenverarbeitung mit Hadoop allerdings einem Batch-Ansatz. Das Hadoop-Kernsystem eignete sich daher zumindest bis zur Version 2 quasi nicht oder nur durch den Einsatz von Erweiterungen wie Apache Storm und oder Hortonworks Tez für Echtzeitprobleme oder interaktive Algorithmen. Da das MapReduce-Konzept auf den zwei separat ablaufenden Prozessen Map und Reduce basiert, liegt der primäre Einsatzzweck von Hadoop in einer nachträglichen, dafür aber massiv parallelen Verarbeitung von Daten sowie in der Aggregation. Der Begriff Aggregation steht in der Informatik sowohl für die Verbindung zwischen Daten und Objekten, als auch für den Prozess zur Gewinnung von Metadaten. Im Kern besteht Hadoop nur aus zwei Komponenten, dem Hadoop Distributed File System (HDFS) und dem Hadoop Map Reduce Framework. HDFS ist das Hadoop-eigene verteilte Dateisystem, MapReduce das Framework zum verteilten und parallelen Verarbeiten der im HDFS gespeicherten Daten, wobei HDFS problemlos auch mehrere 100 Millionen Dateien bewältigt. Der MapReduce-Algorithmus wiederum ist ursprünglich eine Entwicklung von Google. Auch in HDFS stecken Konzepte von Googles proprietärem Google-Dateisystem.