Big Data Analytics mit Hadoop und MapReduce

Angesichts der stetig wachsenden Datenmengen bilden intelligente und zielgerichtete Datenanalysen die Grundlage für die gesamte Unternehmensleistung. Welche Unternehmen hier die Nase vorn haben, wird immer stärker durch die richtige Kombination von Methoden und Technologien entschieden. Die Vielfalt an Schlüsseltechnologien für Big Data Analytics wird immer undurchsichtiger und komplexer. Vor diesem Hintergrund möchten wir mit dieser Artikel-Reihe die wichtigsten Technologien vorstellen.

Hadoop – Der Big Data Befähiger

Hadoop ermöglicht als Open-Source-Technologie ein simultan verteiltes Verarbeiten von Massendaten. Dabei werden die Daten durch mehrere Rechner eines Netzwerkes gleichzeitig verarbeitet. Das zugrundeliegende Dateisystem für die auf mehrere Rechner eines Netzwerkes verteilte Datenbearbeitung wird als Hadoop Distributed File System (HDFS) bezeichnet. Dieses Dateisystem ermöglicht die Verteilung und parallele Verarbeitung von Daten über mehrere, an ein Netzwerk verbundene Rechner in einem sogenannten Hadoop-Cluster. Um einen Hadoop-Cluster betreiben zu können, wird nicht mehr als handelsübliche Hardware benötigt. Auf softwareseitig setzt Hadoop geringe Ansprüche, denn jeder Hadoop-Rechner (Node) benötigt nicht mehr als Linux als Betriebssystem und Java als Framework.

Die Fähigkeit der Verarbeitung von großen Datenmengen schöpft Hadoop durch Parallelisierung der Mapping-Prozesse im MapReduce-Algorithmus, mit dem sich sehr gut auch unstrukturierte Daten auswerten lassen. Erst bei der Verarbeitung von Datenbeständen im mehrstelligen Terabyte-Bereich kommen die Vorteile von Hadoop mit dem verteilten und parallelen Rechnen besonders zur Geltung, da jeder einzelne Rechner nur eine Teilmenge auswertet und nur kurz vor dem Reducer-Prozess die Daten wieder fusioniert werden.

Das Prinzip von MapReduce lässt sich leicht durch folgendes Beispiel erläutern:
Angenommen, in einem Social Media Netzwerk (wie etwa Facebook) sollen die jeweils höchste Altersangabe pro Wohnort ermittelt werden, um die Frage zu klären, welche Stadt den ältesten Menschen hat, der noch am Leben ist. Da etablierte Social Media Netzwerke sehr viele Daten verwalten, sind die Daten über mehrere Server verteilt. Ein Map-Prozess würde auf allen Servern (Data-Nodes) jeweils alle Lebensjahre pro aktives Mitglied tabellarisch sammeln und dann dem jeweiligen Wohnort zuweisen. Hier werden also alle Altersangaben zu eindeutigen Wohnorten gemappt. Da jeder Node diese Aufgabe für sich selbst auf Basis seines eigenen Datenbestands bewerkstelligt, ist dieser Mapping-Prozess parallelisiert. Weiterlesen