Apache Hadoop – das Wunderkind der Big Data Technologien

Im Jahr 2017 erzeugte täglich im Durchschnitt jeder Mensch zwischen 600 und 700 Megabyte an Daten. Bis zum Jahre 2020 soll dabei die durchschnittliche Menge an täglich generierten Daten eines Jeden auf dieser Welt auf 1,5 Gigabyte anwachsen. Kommende Technologien wie der Mobilfunkstandard 5G werden dieses Wachstum in Zukunft auch über das Jahr 2020 hinaus massiv begünstigen.[1] Konventionelle Datenverarbeitungssysteme reichen deswegen schon seit mehreren Jahren nicht mehr aus, um diese gewältigen Datenmengen in einer unternehmerisch-wirtschaftlichen Effizienz gewinnbringend verarbeiten zu können. Die Leistung eines Einzelnen ist in unserer digitalisierten, stark von exponentiellen Tendenzen geprägten Welt, nicht mehr genug. Diese Aussage bezieht sich dabei nicht mehr nur auf die Arbeit zwischen Menschen, sondern mittlerweile auch auf das Zusammenwirken und die Kommunikation zwischen Maschinen. Apache Hadoop macht sich dabei genau dieses Prinzip der Zusammenarbeit auf maschineller Ebene zunutze und schafft damit die Grundlage für Unternehmen weltweit, sehr große Datenmengen auf einer ökonomisch sehr effizienten Art und Weise zu verarbeiten.

 

Apache Hadoop – Definition und Entstehungsgeschichte

In den vergangenen 30 Jahren wurden Informationen, welche beispielsweise innerhalb eines Unternehmens durch ein Enterprise-Resource-Planning-System generiert wurden, primär in relationalen Datenbanken gespeichert. Diese Datenbanktechnologie zeichnet sich im speziellen durch ihre Kerneigenschaften der Abgeschlossenheit, Konsistenz, Isolation und Dauerhaftigkeit aus. Mit dem Zeitpunkt der Jahrtausendwende erreichten die Relationalen Datenbanken zunehmend die Grenzen ihrer technologischen Möglichkeiten. Viele Unternehmen reizten immer häufiger die Möglichkeiten ihrer Datenbanksysteme aus, denn die Datenmengen, die durch diese Systeme verarbeitet werden sollten, nahmen in sehr großer Geschwindigkeit zu. Vor allem die Kerneigenschaften der Abgeschlossenheit, Konsistenz, Isolation und Dauerhaftigkeit relationaler Datenbanken sind es, die diese Technologie bei der Verarbeitung größerer Datenmengen schnell an ihre Grenzen bringt. Denn sobald die Datenmengen so groß werden, dass diese nicht mehr direkt auf dem Server oder dem Computer, also generell nicht mehr auf der physischen Maschine, gesichert werden können, bestehen bereits Probleme, Daten zweckgemäß in relationalen Datenbanken zu speichern und zu verarbeiten. Im späteren Verlauf entwickelten sich daraufhin auch im Bereich der relationalen Datenbanken, Systeme, welche das Prinzip des Clusterverbundes nutzten, wobei jedoch die Verbindung dieser Datenbanken über mehrere physische Maschinen mit einem großen Aufwand verbunden war. Außerdem beeinflusst der Clusterverbund bei relationalen Datenbankstrukturen die Leistungsfähigkeit der zur Verarbeitung und Auswertung genutzten Applikationen negativ.[2]

In den ersten Jahren nach der Jahrtausendwende sahen sich gerade große Internetfirmen wie Google der technologischen Herausforderung ausgesetzt, neue Lösungen zur Datenverarbeitung großer Datenmengen zu entwickeln, da die alten Datenbanktechnologien schlichtweg zunehmend überfordert waren. Als Pionier in der Verarbeitung sehr großer Datenmengen entwickelte Google daraufhin den Pagerank-Algorithmus, welcher eine intelligente Filterung und Indizierung der Webseiten im Internet ermöglicht und zum damaligen Zeitpunkt den Grundstein für die heute meist genutzte Internetsuchmaschine legte. Der Algorithmus, welcher eine intelligente Filterung der Webseiten gewährleistet, wurde im weiteren Verlauf in Verbindung mit dem sog. „Google File System“ eingesetzt. Dabei werden die zu verarbeitenden Daten jeweils blockweise auf einzelne konkrete Server oder Computer aufgeteilt. Jede physische Maschine nutzt somit selber die eigene Rechenleistung zur Verarbeitung der Daten. Am Ende werden die Resultate der einzelnen Berechnungen wieder zusammengeführt und bilden somit im Verbund das Endergebnis der Datenverarbeitung ab.[3]

Aufbauend auf diesen Entwicklungen wurde ab dem Jahre 2003 von der Firma Yahoo ein auf Java basierendes Software Framework zur Speicherung und Auswertung großer Datenmengen mit dem Namen „Hadoop“ entwickelt. Wichtig dabei zu betonen ist, dass der sog. „Map-Reduce-Algorithmus“, auf dem Hadoop in seinen Anfängen fast ausschließlich basierte, durch den Google Mitarbeiter Doug Cutting im Jahr 2003 hervorgebracht wurde und somit schlussfolgernd auf den ersten Errungenschaften und Methoden zur Verarbeitung großer Datenmengen im Zusammenhang mit dem sog. „Google File System“ aufbaut. Im Jahr 2008 wurde Hadoop dann von Yahoo an die Apache Software Foundation übergeben und wird seitdem dort als ein Top-Level-Projekt stetig weiterentwickelt. Auf Doug Cutting, dem ursprünglichen Erfinder des grundlegenden Hadoop-Algorithmus, ist auch der Name des Software Frameworks zurückzuführen. Er gab der Entwicklung den gleichen Namen, den auch der kleine Spielzeugelefant seines Sohnes zum damaligen Zeitpunkt der Erfindung hatte. Auch aus diesem Grund ist auch heute noch im Logo von Hadoop ein gelber Spielzeugelefant zu sehen.[4]

Apache Software Foundation: asf - Revision 1866507: /hadoop/logos/asf_hadoop, Archivdatei.
http://svn.apache.org/repos/asf/hadoop/logos/asf_hadoop/ 
(Zugriff: 06.09.2019)
Apache Software Foundation: asf - Revision 1866507: /hadoop/logos/asf_hadoop, Archivdatei. http://svn.apache.org/repos/asf/hadoop/logos/asf_hadoop/ (Zugriff: 06.09.2019)

Apache Hadoop ist eines der wohl bekanntesten clusterbasierten Software Frameworks zur Speicherung und Auswertung sehr großer Datenmengen, welches nicht nur von der Apache Software Foundation vorangetrieben wird, sondern auch parallel permanent durch eine sehr große Open Source Community weiterentwickelt wird. Es kommt sogar häufig vor, dass Big Data mit Hadoop fälschlicherweise gleichgesetzt wird. Dies beweist einmal mehr die Bekanntheit und den Einfluss von Hadoop auf die gesamte Welt der Big Data Technologien. Hadoop ermöglicht die Speicherung großer Datenmengen auf mehreren kleineren physischen Maschinen, wodurch diese Daten direkt auf lokaler Ebene verarbeitet werden können. Für die generelle Datenverarbeitung großer Datenmengen werden somit keine Supercomputer benötigt, sondern in den meisten Fällen nur sehr viele kleinere und vor allem günstigere Server.

Das Funktionsprinzip und die Kerneigenschaften des Gesamtsystems

Da wo herkömmliche transaktionale und analytische Methoden zur Datenverarbeitung an ihre Grenzen stoßen, welche sich prinzipiell dem zentralistischen Prinzip der Datenverarbeitung zuordnen lassen, kann in vielen Fällen der Einsatz des Software Frameworks Hadoop zu einer individuellen Lösung der zugrundeliegenden Analyseprobleme beisteuern. Wie bereits im vorherigen Abschnitt dieses Artikels deutlich geworden ist, basiert die Anwendung von Hadoop prinzipiell auf der Verteilung, Verarbeitung und Zusammenführung der zu analysierenden Datenmengen. Welche Hintergrundprozesse während der Nutzung von Apache Hadoop im Detail ablaufen und aus welchen Bestandteilen das Software Framework sich zusammensetzt, wird im folgenden Abschnitt anhand der Funktionsprinzipien und Kerneigenschaften des Gesamtsystems erklärt.

Das Software Framework Hadoop basiert grundsätzlich auf drei Kernelementen. Das „Hadoop Distributed File System“ (HDFS) bildet davon als Hauptspeicher die Basis von Hadoop. Im Grunde genommen ist das HDFS ein verteiltes Dateisystem, wobei die Daten in Form von einzelnen Datenblöcken über sog. „Datanodes“ verteilt sind. Diese einzelnen Datanodes sind in den meisten Anwendungsfällen einfache Server, welche auch in vielen anderen Anwendungsbereichen in der Industrie zum Einsatz kommen.[5] Das zweite Kernelement ist der Map-Reduce-Algorithmus. Der Algorithmus nutzt dabei die herrschende Datenlokalität des HDFS aus und berechnet zunächst auf Basis der geplanten Abfragen die Teilresultate der einzelnen Datenblöcke direkt auf der physischen Maschine bzw. dem lokalen Server. Diese Phase bezeichnet man als sog. „Mapphase“. In der nächsten Phase werden dann die einzelnen Teilresultate zusammengeführt und daraus ergibt sich am Ende das umfassende Gesamtresultat der Abfrage. Diese Phase wird auch als sog. „Reducephase“ bezeichnet.[6] Zur Steuerung aller stattfindenden Verarbeitungsprozesse im System wird noch eine dritte Kernkomponente benötigt. Die Abkürzung YARN steht für „Yet Another Resource Negotiator“ und zugleich für die dritte angesprochene Komponente, welche die Job- und Ressourcenverwaltung für das Gesamtsystem von Hadoop übernimmt. YARN dient darüber hinaus auch als Schnittstelle dafür, dass Hadoop auch externe Applikationen und Anwendungen von anderen Softwareherstellern unterstützt und somit beispielsweise für die Echtzeit-Datenverarbeitung von Streaming-Daten eingesetzt werden kann.[7]

Parallel zu der Entwicklung des Gesamtsystems Hadoop wurden Kerneigenschaften von den Entwicklern definiert, die das Software Framework im späteren Einsatz zwingenderweise vorweisen sollte. Die folgenden Bedingungen mussten zum damaligen Zeitpunkt die Server bzw. das gesamte Rechencluster, in Bezug auf die Aufteilung und Verarbeitung der Daten, erfüllen:[8]

Das Rechencluster soll aus handelsüblichen physischen Maschinen wie beispielsweise Servern bestehen.

Das Cluster muss in der Lage sein, große Dateimengen (mehrere Gigabyte, bezogen auf das Jahr 2003) zügig speichern zu können.

Die Datenverarbeitung im Rechencluster soll auf dem Prinzip der Stapelverarbeitung basieren.

Das Rechencluster sollte gewährleisten, dass durch parallele Zugriffe auf das Dateisystem, neue Daten in dieses zeitgleich eingepflegt werden können.

Quellenangaben

[1] Vgl. Schadhauser, Walter: Wo kommen all die Daten her?, in: https://www.storage-insider.de/wo-kommen-all-die-daten-her-a-608824/, (06.09.2019).

[2] Vgl. Fasel, Daniel; Meier, Andreas: Big Data – Grundlagen, Systeme und Nutzungspotentiale, Seite 110.

[3] Vgl. Müller, Sebastian: Big Data Analysen – Für den schnellen Einstieg, Seite 11ff.

[4] Luber, Stefan: Was ist Hadoop?, in: https://www.bigdata-insider.de/was-ist-hadoop-a-587448/, (06.09.2019).

[5] Vgl. Dorschel, Joachim: Praxishandbuch Big Data Wirtschaft – Recht – Technik, Seite 279f.

[6] Vgl. Fasel, Daniel; Meier, Andreas: Big Data – Grundlagen, Systeme und Nutzungspotentiale, Seite 125.

[7] Joos, Thomas: YARN & Co. – Hadoop-Erweiterungen im Überblick, in: https://www.bigdata-insider.de/yarn-co-hadoop-erweiterungen-im-ueberblick-a-469385/, (06.09.2019).

[8] Vgl. Müller, Sebastian: Big Data Analysen – Für den schnellen Einstieg, Seite 11.