Apache Zeppelin: Explorative Datenanalyse im Big Data Umfeld

Im Mai 2016 hat die Apache Software Foundation Apache Zeppelin zum Toplevel Projekt ernannt. Spätestens seit diesem Zeitpunkt sollte, wer sich im Big Data Umfeld bewegt, nicht nur an die großen Luftschiffe denken, wenn er den Namen Zeppelin hört. Aber was genau ist Zeppelin und was kann man damit machen?

„Apache Zeppelin ist ein modernes, webbasiertes Notebook, das interaktive Datenanalysen ermöglicht (Notebook muss hier wörtlich mit „Notizbuch“ übersetzt werden).“ Solche, oder ähnliche Sätze liest man häufig, wenn es darum geht, Apache Zeppelin kurz zu beschreiben. Und tatsächlich dient Zeppelin der einfachen Anzeige und Analyse von Daten auf verteilten Systemen, die auf Apache Flink, Apache Spark, Apache Hadoop oder anderen Big Data Plattformen basieren. Die Notebooks von Zeppelin ermöglichen Entwicklern, Data Scientists und Anwendern einfach mit den benötigten Daten zu arbeiten, ohne sich um Befehle auf der Kommandozeile oder Einzelheiten des Clusters kümmern zu müssen. Eine große Stärke von Zeppelin liegt hier in den explorativen Auswertungen, mit denen man sich einen ersten Überblick über die Daten verschafft und sich seinem Ziel dann schrittweise nähern kann. Zwischenergebnisse können einfach visualisiert und geteilt werden, indem man ein Notebook z.B. als Webseite freigibt und entsprechend berechtigte User diese einsehen und verwenden können.

Um die weiteren Besonderheiten von Zeppelin besser zu verstehen, lohnt sich ein kurzer Blick auf dessen Architektur. Neben dem Server, der beispielsweise auf einem Hadoop Cluster läuft, gibt es die sogenannten Interpreter. Diese müssen einmalig auf dem Zeppelin Server eingerichtet werden und dienen als Schnittstelle zu den jeweiligen Backend Systemen. In der aktuellen Version (0.7.2) sind über 20 fertige Interpreter enthalten. Außerdem besteht die Möglichkeit, eigene Interpreter zu erstellen. Mit dem Cassandra Interpreter kann man beispielsweise mit der Cassandra Query Language (CQL), Daten aus einer Cassandra Datenbank abfragen oder mit dem Shell Interpreter Befehle direkt auf dem Server ausführen. Wenn man jetzt noch weiß, dass man innerhalb eines Notebooks Zugriff auf jeden Interpreter hat, bekommt man langsam eine Vorstellung davon, was für ein mächtiges Werkzeug man mit Apache Zeppelin in die Hand bekommt.

Die Clients greifen über REST Services bzw. Websocket Verbindungen auf den Server zu. Über die Websocket Verbindung, werden Änderungen an einem Notebook, direkt an alle anderen Clients übertragen, die dieses Notebook geöffnet haben. Dadurch können verschiedene Personen zusammen und gleichzeitig an einem Notebook arbeiten. Das kann man sich vorstellen wie die Bearbeitung einer freigegebenen Google Doc Datei.

Für die Darstellung der Charts setzt Apache Zeppelin auf die Javascript Library NVD3.js. Die gängigsten Charts werden hiermit abgedeckt. Soll es etwas ausgefallener sein, bietet Zeppelin mit dem Helium Framework, die Möglichkeit eigene Charts zu erstellen. Mit AngularJS können Eingabemasken erstellt werden, mit denen es z.B. auch Endanwendern ermöglicht werden kann, Daten abzufragen.

Sehr wahrscheinlich wird man in Zukunft noch einiges über Apache Zeppelin hören bzw. lesen. Ob es künftig als Ersatz aktueller Visualisierungstools zum Einsatz kommt und somit in die Hände der Endanwender gelangt, bleibt abzuwarten. Aber schon jetzt gibt es viele sinnvolle Anwendungsfälle, für die es sich lohnt, sich mit Apache Zeppelin zu beschäftigen. Ein solcher Anwendungsfall wäre z.B. die Anzeige und Auswertung der verschiedensten Logfiles eines Hadoop Systems – und das alles mit einem Mausklick.

Analysetools gibt es viele auf dem Markt, aber was Apache Zeppelin von den anderen Tools unterscheidet, ist die Möglichkeit die verschiedenen Interpreter innerhalb eines Notebooks zu verwenden. Dadurch kann man Analysen anhand von Daten, die aus den verschiedensten Quellen kommen können, durchführen. Die integrierte Charts Library ermöglicht es zudem, Reports zu erstellen, die auch für die Management Ebene benutzt werden können.

Hinterlassen Sie einen Kommentar

Nach oben