Im Verlaufe der Zeit hat sich um die Kernelemente des Datenverarbeitungssystems Hadoop ein vielfältiges Ökosystem an Applikationen und Softwareanwendungen entwickelt. Einige davon existieren und funktionieren auch als komplett eigenständige Softwareanwendung, andere wiederum benötigen Apache Hadoop als grundlegendes Software Framework um ihr ganzes Potenzial auszuschöpfen, oder um überhaupt funktionsfähig zu sein. Eines haben jedoch alle der in diesem Artikel vorgestellten Applikationen und Programme, welche in Kombination mit dem Software Framework Hadoop eingesetzt werden können, gemeinsam: Sie alle greifen auf die im Blogbeitrag „Apache Hadoop – das Wunderkind unter den Big Data Analysetechnologien“ vorgestellten drei Kernkomponenten von Hadoop zurück. Dabei wird vor allem das HDFS von Softwareherstellern und die damit im Zusammenhang stehenden Möglichkeiten am häufigsten genutzt. Aber auch bestimmte Funktionalitäten von YARN oder des Map-Reduce-Algorithmus werden zunehmend bei der Erstellung der eigenen Programme berücksichtigt, sodass diese in der späteren praktischen Anwendung mit dem mächtigen Big Data Analysetool Hadoop in Kombination eingesetzt werden können.
Apache Hadoop – das Bindeglied in der Welt der Big Data Analysetools
Die Anbindung von externen Applikationen an ein Hadoop-Cluster war im Zusammenhang mit der Nutzung der ersten Version von Hadoop grundlegend nur sehr schwer möglich. Dabei konnten zunächst von Drittanbietern und deren Programmen nur die Anbindungsmöglichkeiten genutzt werden, die das HDFS in der frühen Entwicklungsphase zur Verfügung gestellt hatte. Im Verlaufe der Zeit öffnete sich Hadoop jedoch immer stärker gegenüber anderen Big Data Applikationsanbietern und wurde zu einem extrem wichtigen Bindeglied in der gesamten Welt der Big Data Analysetools. Mit der Weiterentwicklung von Hadoop wurden die Auswertungsmöglichkeiten und vor allem die damit verbundene Vorgehensweise, wie Daten mithilfe von Hadoop ausgewertet werden können, deutlich erweitert. Dahingehend wurde auch die Job- und Ressourcenverwaltung innerhalb des Hadoop Clusters aktualisiert und verbessert. Diese Veränderungen eröffneten die Möglichkeiten und Vorteile, die sich heute aus der Nutzung von Hadoop ergeben und sind vor allem auch der Grund dafür, weswegen das gesamte Software Framework unter den Big Data Technologien mittlerweile so bekannt ist.[1]
Konkret wurde in der zweiten Entwicklungsphase des Software Frameworks Hadoop die Job- und Ressourcenverwaltung enorm verbessert und unter dem Namen „YARN“ (Yet Another Resource Negotiator) in das System implementiert. Darüber hinaus wurde auch der Map-Reduce-Algorithmus weiterentwickelt. YARN schaffte nun als verbesserter Job- und Ressourcenverwalter die Möglichkeit, das Ressourcenmanagement sowie die Zeitplanungsfunktion von Hadoop neu zu definieren und zugleich den Map-Reduce-Algorithmus von seiner Funktion als reine Datenverarbeitungskomponente zu entkoppeln. Die Folge davon ist, dass Hadoop dadurch mehrere externe Anwendungen und Applikationen unterstützen kann. Außerdem war es damit nun auch möglich mittels Hadoop neben der Durchführung eines normalen Auftrages mithilfe des Map-Reduce-Algorithmus, gleichzeitig Streaming-Daten zu analysieren, sowie interaktive Abfragen durchzuführen. Der Vorteil der sich auf der anderen Seite aus dem Synergieeffekt der gleichzeitigen Anwendung des Map-Reduce-Algorithmus und YARN ergibt, ist, dass nun die Möglichkeit besteht, das Gesamtsystem Hadoop besser für die Integration operativer Anwendungen zu nutzen, welche nicht einen kompletten Durchlauf des Map-Reduce-Algorithmus abwarten können. Damit wurde der Grundstein für die Echtzeit-Datenverarbeitung im Software Framework Hadoop gelegt, wodurch sich Apache Hadoop nun als eine gewaltige Datengrundlage für Drittanbieter nutzen lies, welche sich meist auf Big Data Visualisierungssoftware spezialisiert haben.[2]
Vorstellung einzelner kombinierbarer Analysetools des Hadoop-Ökosystems
Im Ökosystem rund um Hadoop gibt es mittlerweile zahlreiche Applikationen, welche sich mit den drei beschriebenen Kernkomponenten des Software Frameworks Hadoop verbinden beziehungsweise austauschen können. Jede Anwendung, jedes Tool oder Addon verfolgt dabei einen eigenen, ganz bestimmten und meist sehr individuellen Einsatzzweck. Nachfolgend werden vier verschiedene Applikationen vorgestellt, welche sich alle in Kombination mit dem Software Framework Hadoop einsetzen lassen.
Bei „Sqoop“ handelt es sich um ein praktisches Tool, welches in direkter Verbindung mit dem HDFS und dem Map-Reduce-Algorithmus eingesetzt wird. Mithilfe von Sqoop wird der Import und Export großer Datenmengen zwischen dem HDFS und anderen konventionellen Datenbanksystemen erheblich vereinfacht. Somit ist Sqoop im Kern ein Datentransfer-Tool, welches den unkomplizierten Austausch von Massendaten, durch die Überwindung der Barrieren zwischen SQL- und NoSQL-Infrastrukturen ermöglicht. Das Tool verfügt dabei über Konnektoren, welche eine Verbindung zwischen dem HDFS und vielen anderen Datenbankensystemen, auf Basis von Standard-SQL-Schnittstellen, herstellen können.[3] Um neue Datensätze in das HDFS zu laden oder bestehende Dateien abzufragen, erzeugt Sqoop auf Grundlage des Map-Reduce-Algorithmus einzelne Aufträge, welche auf Basis der soeben erwähnten Konnektoren, die Daten entsprechend des Auftrages in das HDFS schreiben oder aus diesem auslesen.[4]
Aus dem Hause von Yahoo stammt die nächste Applikation, welche sehr oft in der Praxis in Verbindung mit Hadoop eingesetzt wird. Das Tool mit dem Namen „Pig“ vereinfacht dabei die Erstellung von Abfragen bei der Nutzung von Hadoop enorm. Will der Benutzer direkt den Map-Reduce-Algorithmus als Auswertungstool verwenden und diesen entsprechend auch direkt mit Befehlen ansteuern, so muss die Skriptsprache Java als Eingabesprache verwendet werden. Pig verwendet hingegen eine einfachere Skriptsprache als Java, welche die eingegebenen Skripte in der Sprache von Pig in normale Map-Reduce-Funktionen selbständig umwandelt.[5] Die Skriptsprache von Pig nennt sich „Pig Latin“ und wurde ursprünglich von Yahoo im Jahr 2006 entwickelt, um die Auswertung großer Datenmengen durch das Erstellen von unkomplizierteren Abfragen zu vereinfachen. Aktuell wird Pig, auch wie Hadoop selbst, von der Apache Software Foundation weiterentwickelt und ist deswegen mittlerweile auch immer häufiger unter dem Namen „Apache Pig“ zu finden. Die Entwickler orientierten sich bei der Festlegung der einzelnen Befehle, welche durch Pig Latin ausgedrückt werden können, an anderen bekannten Programmiersprachen. Aufbauend darauf wäre es sogar aktuell durchaus möglich, mithilfe von Pig Latin eine Abfrage für ein Hadoop-Cluster zu erstellen, ohne die Skriptsprache Java zu beherrschen.
„Elasticsearch“ ist eine weitere Applikation, welche zum einen die Erstellung von Abfragen für den Nutzer von Hadoop vereinfacht und zum anderen die Auswertungsmöglichkeiten der Ergebnisse der Abfragen vervielfältig. Dieses Tool basiert auf der Apache Lucene Programmbibliothek, welche einem indizierenden Suchalgorithmus ähnelt. Mithilfe der Anbindung von Elasticsearch wird dem Nutzer die Möglichkeit geboten, komplexe Freitextabfragen für die sich im HDFS befindlichen Dateien zu erstellen. Darüber hinaus kann Elasticsearch auf Grundlage der Apache Lucene Programmbibliothek für die Indexierung der sich im Dateisystem befindlichen Informationen genutzt werden. Somit wird die Auswertungsgeschwindigkeit der Datensätze durch den Einsatz von Elasticsearch gesteigert, da indizierte Inhalte immer entsprechend bestimmter Kriterien geordnet und aufbereitet werden und somit eine deutlich schnellere Auffindbarkeit der Daten gewährleistet wird. Die Suchperformance von Elasticsearch wird zudem durch die clusterbasierte Architektur von Hadoop zusätzlich gesteigert, da so die Ressourcen von mehreren Systemen gleichzeitig effizient genutzt werden können. Elasticsearch bietet darüber hinaus auch eine von Hadoop unabhängige Möglichkeit an, direkt eine clusterbasierte Infrastruktur über Elasticsearch zu nutzen. Hinsichtlich der Vielfalt an Auswertungsmöglichkeiten bietet dieses Tool dem Benutzer viele zusätzliche Features im Bereich des Monitoring und des Clustering, wodurch beispielsweise die Aussagekraft bestimmter Analysergebnisse durch die Visualisierung konkreter Sachverhalte deutlich verstärkt werden kann.[6]
Das letzte Tool, welches im Rahmen dieses Blogbeitrages kurz vorgestellt wird, ist ein komplett eigenständiges Programm und kann darüber hinaus auch direkt in Verbindung mit Hadoop zur Analyse großer Datenmengen genutzt werden. Für ein besseres anfängliches Verständnis kann mithilfe von „Tableau“ der zugrunde liegende Datensatz in ersten Schritten erforscht und aufgebrochen werden. Tableau bietet dabei hauptsächlich als Visualisierungstool vielfältige Möglichkeiten erste wertvolle Erkenntnisse aus einer großen Datenmenge zu erlangen. Die verschiedenen Methoden der grafischen Visualisierung der eigenen Daten sind dabei im Rahmen der Nutzung von Tableau nahezu unbegrenzt. In Abhängigkeit der Struktur der eigenen Datensätze lassen sich sehr schnell und vor allem einfach konventionelle Methoden der Datenvisualisierung nutzen, wie beispielsweise Diagramme oder Tabellen. Aber auch spezifische Werkzeuge wie beispielsweise Blasendiagramme oder Gantt-Diagramme können zur Veranschaulichung von Daten bei der Nutzung von Tableau eingesetzt werden.[7] Neben den Vorteilen der Visualisierung bietet Tableau zudem auch noch eine leistungsstarke Möglichkeit, über native Konnektoren eine direkte Verknüpfung zu dem Dateisystem von Hadoop herzustellen. Um daraus her-vorgehend erste Abfragen erstellen zu können, ist kein tiefgründiges Wissen über diverse Skriptsprachen notwendig, da Tableau über eine eigene, leicht verständliche Benutzeroberfläche verfügt. Somit stellt das fortschrittliche clusterbasierte Dateisystem von Hadoop, aber auch jedes andere ältere konventionelle Datenverarbeitungssystem, für Tableau im Grunde genommen nur eine weitere Datenquelle dar, welche direkt genutzt werden kann, um ohne spezielle weitere Konfigurationen, erste tiefgründige Erkenntnisse durch die Visualisierung der eigenen Datenbestände aufzudecken.[8]
Quellenangaben
[1] Vgl. Fasel, Daniel; Meier, Andreas: Big Data – Grundlagen, Systeme und Nutzungspotentiale, Seite 124.
[2] 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).
[3] Vgl. Dorschel, Joachim: Praxishandbuch Big Data Wirtschaft – Recht – Technik, Seite 286.
[4] Vgl. Fasel, Daniel; Meier, Andreas: Big Data – Grundlagen, Systeme und Nutzungspotentiale, Seite 134.
[5] Vgl. ebenda, Seite 134.
[6] Vgl. Stotzer, Andreas: Einführung zu Elasticsearch, in: https://www.diso.ch/fachartikel-und-einfuehrung-elasticsearch-andreas-stotzer/, (06.09.2019).
[7] Vgl. o.V.: Handbuch zur Datenvisualisierung: Definition, Beispiele und Lernressourcen, in: https://www.tableau.com/de-de/learn/articles/data-visualization, (06.09.2019).
[8] Vgl. o.V.: Lösungen – Hadoop, in: https://www.tableau.com/de-de/solutions/hadoop, (06.09.2019).
Bildernachweis:
Bild Sqoop: Angelina: It Company Logo Design for a Company in United States | Design 4367582, Beitrag, 23.08.2014. https://www.designcrowd.com/design/4367582 (Zugriff: 06.09.2019)
Bild Pig: Kumar, Mukund: Querying Specific Column In Pig, Beitrag, 2019. https://bigdatalane.com/2018/10/27/querying-specific-column-in-pig/ (Zugriff: 06.09.2019)
Bild Elasticsearch:Net LLC: What Is Elasticsearch?, Artikel, 2019. https://www.nexcess.net/cloud/elasticsearch/ (Zugriff: 06.09.2019)
Bild Tableau: Ohne Verfasser: Tableau Square Logo, Archivdatei, 16.05.2018. https://www.flickr.com/photos/141573413@N04/42099499622/in/photostream/ (Zugriff: 06.09.2019)