Apache Zeppelin und Jupyter Notebooks auf Azure
Im Bereich der Datenanalyse und der Datenbearbeitung müssen oftmals aufwendige Abfragen aufgeführt und getestet werden, daher wird im Folgenden Beitrag näher erläutert, wie Rohdaten und strukturierte Daten in Azure gespeichert, aufbereitet und visualisiert werden.
Datenanalysetools die in Azure betrieben werden können
Notebooks sind sehr hilfreich, um schnelle Erkenntnisse aus seinen Daten zu gewinnen und werden daher häufig bei der Datenvorbereitung, Datenvisualisierung, Machine Learning und anderen Big Data-Szenarien verwendet. Im Folgenden werden die Notebooks von Apache Zeppelin und Jupyter betrachtet. Notebooks stellen eine Vielzahl von Interpretern bereit, die es einem ermöglichen, leicht mit bestimmten Datenquellen zu interagieren. So können über kleine Code Snippets Daten explorativ ausgewertet und visualisiert werden. Zeppelin ist hierbei das neueste, der vorgestellten Tools, und zeichnet sich vor allem durch eine große Anzahl an Interpretern und modernen Visualisierungen aus. Dabei können die erstellten Diagramme über Widgets konfiguriert und problemlos mit anderen Nutzern geteilt werden.
Jupyter ist dagegen schon etwas länger auf dem Markt und bringt daher auch eine größere Community mit. Umso leichter findet man beim Einstieg und bei Problemen hilfreiche Dokumentationen. Auch über Jupyter können Diagramme über Widgets konfiguriert werden, die Benutzeroberfläche und die erstellen Diagramme in Zeppelin wirken jedoch deutlich ansprechender als in Jupyter.
Umsetzung in Azure
Azure bietet hierbei zwei Services an, die es ermöglichen mit Notebooks von Jupyter als auch Zeppelin zu arbeiten. Zum einen kann man mit Azure HDInsights, Spark Cluster erstellen, in denen sowohl Zeppelin als auch Jupyter Notebooks genutzt werden können.
Spark Cluster in HDInsights erstellen
Zuerst muss eine Ressourcengruppe im Azure Portal erstellt werden, sofern es nicht schon eine passende gibt. Im Marketplace nach HDInsights suchen und die Ressource erstellen. Als nächstes alle Pflichtfelder ausfüllen, und darauf achten, dass die richtige Datenquelle (unter Storage) und die richtigen Knoten und Knotengrößen (unter pricing) ausgewählt wurden.
Zeppelin Notebook Schnellstart
In dem bereits erstellten Cluster hat man jetzt die Möglichkeit ein Zeppelin Notebook zu starten, daraufhin öffnet sich die Zeppelin Benutzeroberfläche. Um Notebooks anzulegen kann man entweder bereits erstellte Dateien hochladen oder eine neue erstellen. Unter „anonymus“ kann man die Liste der verfügbaren Interpreter einsehen und konfigurieren. In unserem Fall erzeugen wir im ersten Paragraphen ein kleines Beispielprogramm, welches Daten aus einer CSV Datei in eine temporäre Tabelle lädt. Und im zweiten Paragraphen, werten wir die Daten über einen „sql“ Interpreter aus. Das erstellte Diagramm kann jetzt noch über Widgets weiter konfiguriert werden.
Jupyter Notebook Schnellstart
Neben dem Zeppelin Notebook hat man auch die Möglichkeit ein Jupyter Notebook auszuwählen. Auch hier öffnet sich die Benutzeroberfläche von Jupyter und wir erstellen wieder das gleiche Beispielprogramm von eben.
Schnellstart Machine Learning
Als kostengünstigere Alternative lassen sich Jupyter Notebooks in Azure Machine Learning sehr einfach erstellen und ausführen. Um den Service nutzen zu können, muss wieder eine passende Ressourcengruppe erstellt werden. Anschließend im Marketplace nach Machine Learning suchen, „erstellen“ klicken und abschließend alle Pflichtfelder ausfüllen.
Umgebung einrichten
Zu Beginn, Machine Learning Studio starten und „Notebooks“ auswählen. Hier lassen sich jetzt eigene Notebooks bearbeiten aber auch schon erstellte Notebooks hochladen. Bevor jedoch Code Snippets ausgeführt werden können, muss eine Computer-Instanz angelegt werden (kann einige Minuten dauern). Des Weiteren besteht die Möglichkeit die Notebooks in der Jupyter Oberfläche zu bearbeiten. Unter Datasets können eigene Datensätze aus einer lokalen Datei, oder aus einem Datenspeicher erstellt werden. Klickt man nun auf den bestehenden Datensatz wird einem unter „Nutzen“ vorgeschlagen wie man den Datensatz in einen Dataframe lädt. Dieser Dataframe wird anschließend anhand eines kleinen Code Snippets ausgewertet.
Übersicht
Apache Zeppelin in HDInsights |
Jupyter in HDInsights |
Jupyter in Machine Learning |
|
Benutzeroberfläche |
|
|
|
Community |
|
|
|
Kernels/Interpreter |
|
|
|
Visualisierung |
|
|
|
Funktionsumfang in Azure |
|
|
|
Verwalteter Dienst |
|
|
|
Minimale Preiskonfiguration in Azure |
|
|
|
Datenquelle |
|
|
|
Empfehlung
Zeppelin bietet neben den normalen Funktionen und Möglichkeiten noch weitere Features, wie LDAP Integrationsfunktionen oder ein Berechtigungsverwaltungssystem. Daher ist das Tool besonders für Unternehmen interessant, die die Nutzung der Notebooks für eine große Anzahl an Nutzern planen, dagegen bietet Jupyter einem eine Reihe von Erweiterungen und bringt eine große Community mit sich. Wenn also Notebooks schnell und einfach eingerichtet und erstellt werden sollen und kein Bedarf besteht, dass mehrere Benutzer gleichzeitig an einem Notebook arbeiten können, dann ist Jupyter die richtige Wahl.