· 

Was ist eigentlich Hadoop?

Apache Hadoop gewann in den letzten Jahren stark an Popularität. Hadoop als Ökosystem für mehrere Anwendungen im Bereich Big Data, ermöglicht die Verarbeitung massiv vieler Daten. Damit bietet es die Grundlage für Analysen, aber auch für neue Möglichkeiten der künstlichen Intelligenz und im Bereich des Internets der Dinge (zu engl. Internet of Things). Hinzu kommt das Hadoop unter der Apache Lizenz steht und somit freie Software ist.

Welches Problem soll es lösen?

In den letzten Jahrzehnten wurden im Rahmen der Digitalisierung von Unternehmen eine große Menge von Daten gesammelt beziehungsweise Systeme eingerichtet, die es noch immer machen. Ziel war es schon immer, Entscheidungen aus sämtlichen Bereichen durch Wissen aus den Datenerhebungen zu unterstützen. Leider ist es oft schwierig oder gar unmöglich aus großen Datenmengen Wissen mit dem menschlichen Auge herauszulesen. Somit werden extra analytische Systeme benötigt. Bei immens vielen Daten reichen aber allein stehende Computer nicht mehr aus, um die Berechnungen effizient durchführen zu können. Dabei geht es um Petabyte von Daten, also 1024 mal 1024 Gigabyte.

An dieser Stelle kommen verteilte Systeme zum Einsatz. Das bedeutet schlichtweg, dass mehrere Computer zu einem System zusammengeschlossen werden, um Daten zu speichern und zu prozessieren. Ein System beziehungsweise ein Framework, also ein Baukasten, für solch verteilte Systeme ist Apache Hadoop. Hadoop besteht im Kern aus einem verteilten Dateisystem, sowie dem MapReduce-Algorithmus. Beide werden im folgenden genauer beleuchtet.

Hadoop Distributed File System (HDFS)

HDFS bedeutet übersetzt Hadoops verteiltes Dateisystem. Es ermöglicht die Speicherung von Daten verteilt über mehrere Computer. Dabei werden Daten in gleich große Datenblöcke eingeteilt und dann mit unter doppelt oder mehrfach gespeichert. Der Zusammenschluss dieser Computer wird als Cluster bezeichnet. Ein solches Cluster kann mehrere Petabyte an Daten beziehungsweise auch mehrere 100 Millionen Dateien speichern. Die teilnehmenden Computer werden Knoten genannt. Es gibt Namensknoten (zu engl. Name Node) und Datenknoten (Data Node). Namensknoten organisieren die Verteilung und das Abrufen von Daten auf beziehungsweise von den Datenknoten. Zusätzlich speichern sie noch Metadaten, wie zum Beispiel das Erstellungsdatum eines Datenblockes. Werden Daten angefordert, so wird die Abfrage über einen Namensknoten abgewickelt.

 

MapReduce und der gerichtete azyklische Graph

Der MapReduce-Algorithmus wurde ursprünglich von Google entwickelt- Ursprünglich von Google MapReduce und später öffentlich zugänglich gemacht. Es beschreibt die Ausführung von Anwendungen in drei Phasen: Map, Reduce  und Kombination. Diese drei Phasen können sehr geschickt auf verteilten Systemen ausgeführt werden und bilden die Grundlage für klassische Anwendungen mit Hadoop. Map steht für die Übersetzung eines Datums in ein neues Format mit einem zusätzlichen Schlüssel. Diese Operation kann auf jedem Knoten unabhängig von den anderen Knoten durchgeführt werden. In der Kombinationsphase werden alle Daten mit dem selben Schlüssel gruppiert und an die Reduce-Phase weitergeleitet. In der Reduce-Phase werden die Daten einer Gruppe zu einem Ergebnis zusammengeführt. Das kann zum Beispiel die Summer eines bestimmten Wertes von jedem Dateneintrag sein.

Dieser Vorgang kann als ein gerichteter azyklischer Graph ausgehen von den ursprünglichen Datenknoten bis hin zu Ergebnis gesehen werden. In dem Fall des MapReduce-Algorithmus ist dieser Graph sehr schlicht. MapReduce ist heutzutage veraltet und es wird eher auf modernere und flexiblere Ausführungsverfahren basierend auf gerichteten azyklischen Graphen gesetzt. So wird beispielsweise die Dataflow Engine Apache Spark eingesetzt (= Datenfluss Motor). Daher ist Hadoop heutzutage eher als Ökosystem verschiedener Frameworks und Anwendungen zu verstehen. Die meisten bauen auf dem verteilten Dateisystem und auf dem gerichteten azyklischen Ausführungsgraphen auf.

Kommentar schreiben

Kommentare: 0