Überspringen zu Hauptinhalt
Big Data Mit Hadoop

Big Data mit Hadoop

Durch die zunehmende Digitalisierung und Überwachung von Prozessen fallen vor allem in technischen Prozessen immer mehr Daten an (wie z.B. bei maschinengesteuerten Prozessen, bei denen durch Sensorik eine große Menge an Daten anfallen). Dadurch haben viele Unternehmen mit den drei großen technischen Herausforderungen von Big Data – auch die drei großen „V“s genannt – zu kämpfen:

  • Volume (Datenmenge)

Einer der Treiber für die enormen Datenmengen heutzutage ist u.a. die Verbindung von Maschinen und Geräten über das Internet – bekannt auch als das „Internet of Things“ (IoT). Betrachtet man eine Boing 787 so generieren die Sensoren und Systeme allein pro Flug ein halbes Terabyte an Daten. So ist es nicht schwer zu erkennen, dass die Speicherung und die Analyse dieser gewaltigen Datenmengen für Unternehmen eine große technische Herausforderung sind.

 

  • Velocity (Datengeschwindigkeit)

Betrachten wir die neuen Hypes wie Fitness-Armbänder und Smartwatches, die kontinuierlich in Echtzeit Daten erzeugen, so findet bei den meisten auch die Analyse dieser Daten in Echtzeit statt. Diese neuen Hypes bringen neue Datenquellen mit sich. Somit sind wir auch schon bei dem nächsten V wie „Variety“ gelandet…

 

  • Variety (Datenvielfalt)

Anwendungen müssen in der heutigen Zeit mit Daten aus verschiedenen Datenquellen, somit aber auch mit einer Vielzahl an Datenformaten wie Sensordaten, Audiodateien, Bildern, Texten, Tweets etc. umgehen können. Daher ergibt sich die Notwendigkeit für Unternehmen, unterschiedliche Datentypen wie strukturierte, semistrukturierte und unstrukturierte Daten verarbeiten zu können.

 

Hadoop verspricht eine Lösung für die drei großen Probleme von Big Data.
Doch was ist Hadoop, das bereits von namenhaften Internet-Firmen wie Facebook, Google, Amazon, Yahoo und eBay erfolgreich angewandt wird?

 

Das von der Apache Software Foundation geleitete Projekt Hadoop – mit dem kleinen, gelben Elefanten als Emblem –  ist ein Java basierendes Open-Source-Framework, also ein sog. „Programmiergerüst“. Es handelt sich hierbei um eine Datenbanklösung, die eine Vielzahl von Systemen zu Clustern zusammenführt. In solch einem Hadoop-Cluster können riesige Datenmengen, wie sie im Big-Data-Umfeld auftreten, fehlertolerant auf bis zu mehreren tausend verteilten Systemen (dadurch mehr Rechenleistung) parallel in hoher Geschwindigkeit gespeichert und verarbeitet werden.

 

Hadoop ist nicht der Name einer Software, sondern vielmehr die Bezeichnung eines Toolsets.
Was ist damit gemeint und wie sieht die Funktionsweise von Hadoop aus?

 

Hadoop besteht aus einzelnen Komponenten. In diesem Blog-Eintrag gehen wir allerdings nur auf die zwei zentralen Bestandteile von Hadoop ein. Das Distributed File System (HDFS) und das MapReduce System bilden das sog. „Herzstück“ von Hadoop.

Beim HDFS handelt es sich um ein Java basierendes verteiltes, redundantes Dateisystem zur effizienten Speicherung von enormen Datenmengen auf verschiedenen Systemen im Hadoop-Cluster. Durch eine standardmäßige 3-fache Replikation der Daten auf verschiedenen Systemen erreicht das HDFS die benötige Datensicherheit für den Fall eines Hardwareausfalls. Dieser würde sonst zu Datenverlusten führen.

Das MapReduce hat seine Grundzüge vom MapReduce-Algorithmus von Google. Es ist ein Java basierendes Framework, das große Datenmengen jeglicher Datentypen (strukturierte, semistrukturierte und unstrukturierte Daten) in kleine Blöcke aufteilt und diese auf Systemen im Hadoop-Cluster zur parallelen Ausführung verteilt (Map-Phase). Nach der Ausführung der Einzelaufgaben werden die Resultate wieder zu einem Gesamtergebnis zusammengeführt (Reduce-Phase). Durch die parallele Verarbeitung ermöglicht das Konstrukt MapReduce eine hohe Rechengeschwindigkeit.

Hadoop verwendet eine Master/Slave-Architektur. Die Rolle des Masters übernimmt im Hadoop-Cluster der NameNode und die Rolle des Slaves übernehmen die DataNodes. Der NameNode ist für die Verwaltung der Dateien und Verzeichnisstrukturen, auch die Metadaten des Filesystems genannt, zuständig. Die eigentliche Speicherung der Daten übernehmen in dieser Architektur die DataNodes. Der Master gewährleistet zudem die Replikation der Datenblöcke auf verschiedene Slave-Knoten. Hierdurch wird ein Datenverlust im Falle eines Hardwareausfalls innerhalb des Slaves verhindert. Hierfür schicken alle Slave-Knoten in konfigurierbaren Abständen ein Signal an den Master, der sich für jeden Knoten den letzten Zeitpunkt des Signals merkt. Meldet sich ein Knoten über eine längere Zeit nicht beim Master so erklärt ihn der Master für tot. Der Master kümmert sich dann um die Erzeugung einer neuen Kopie der Datenblöcke, um einen Datenverlust zu vermeiden. Durch diese Lösung ist eine Datensicherung, wie wir sie in klassischen Datenbanklösungen kennen, nicht mehr notwendig.

 

 

Was passiert aber wenn der NameNode ausfällt? Für diesen Fall existiert ein Helferelement für den Master der sog. Secondary NameNode, auf dem in periodischen Abständen die Metadaten gesichert und wiederhergestellt werden können. Dadurch wird der Master entlastet und kann nach einem Ausfall schneller und ohne Datenverlust starten.

 

Wann macht es Sinn, Hadoop einzusetzen?

 

Unternehmen sollten sich nicht vom Hadoop-Hype blenden lassen und ihre Anforderungen genau prüfen bevor sie sich für Hadoop entscheiden. Hadoop ist nicht mit Big Data gleichzusetzen und auch keinesfalls für jedes Anwendungsszenario mit Big Data geeignet.

So eignet sich Hadoop optimal für den Einsatz bei großen Mengen von unstrukturierten oder halbstrukturierten Daten, da die verteilte Infrastruktur eine parallele Verarbeitung auf mehreren Knoten ermöglicht. Für Anwendungen, bei denen es allerdings um die Realtime-Verarbeitung von größeren Datenmengen handelt, ist Hadoop nicht die erste Wahl.

Ob Hadoop auch Ihnen bei der Arbeit mit großen Datenmengen helfen kann und ob sich eine Einführung lohnt, erörtern wir gerne in einem persönlichen Gespräch mit Ihnen.

Esra Caglar

Als Spezialistin für Datenintegration und -transformation bin ich tagtäglich mit wachsenden Datenmengen und komplexen Architekturen konfrontiert. Deshalb bin ich ständig auf der Suche nach neuen Technologien um den Herausforderungen in der Praxis noch effektiver entgegen treten zu können.

An den Anfang scrollen