Apache Zeppelin

Datenbasierte und interaktive Analysen mit SQL und weiteren Programmiersprachen

Agenda

  1. Ziel und Nutzen von Apache Zeppelin
  2. Interpreter und Zeppelin-Context
  3. Unterschied zu Jupyter
  4. Demo

Diese Präsentation wurde mit Quarto / RStudio als Reveal.js Dokument erstellt.

git clone https://github.com/teletrabbie/adm-apache-zeppelin.git

Ziele und Nutzen von Apache Zeppelin

“Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala, Python, R and more.”

  • Webbasiert
  • Daten (Import, Bearbeitung, Analyse, Darstellung etc.)
  • Interaktiv
  • Kollaboration und Versionierung
  • Unterschiedliche (Programmier-) Sprachen

Interpreter und Zeppelin-Context

Unterstützte Interpreter

  • Alluxio
  • Angular
  • Beam
  • BigQuery
  • Cassandra
  • Elasticsearch
  • Flink
  • Geode
  • Hbase
  • HDFS
  • Ignite
  • JDBC
  • Kylin
  • Lens
  • Livy
  • Markdown
  • Pig
  • PostgreSQL
  • Python
  • Scalding
  • Scio
  • Shell
  • Spark

Interpreter und Zeppelin-Context

Interne Hierarchie

  • Interpreter Process enthtält
  • 1:n Interpreter Groups und diese enthalten
  • 1:n Interpreter Instanzen.

Interpreter Process, Group und Instanz

Interpreter Process, Group und Instanz

Interpreter und Zeppelin-Context

Modes für Interpreternutzung durch Notebooks

Shared: Alle Notebooks nutzen ein und denselben Interpreter Process und Interpreter Group

Scoped: Alle Notebooks nutzen ein und denselben Interpreter Process, aber unterschiedliche Interpreter Groups

Isolated: Jedes Notebook nutzt eigenen Interpreter Process und eigene Interpreter Groups

Interpreter und Zeppelin-Context

Folgen für die Variablen je Mode

Shared: Variablen können durch unterschiedliche Notebooks verändert/überschrieben werden.

Scoped: Notebooks können nicht mehr auf Variablen anderer Notebooks zugreigen, aber die Notebooks teilen sich die vorhandenen Ressourcen.

Isolated: Alle Notebooks, deren Variablen und Ressourcennutzung sind unabhängig voneinander.

Interpreter und Zeppelin-Context

Zeppelin-Context

  • systemweiter Container für typische Funktionen
  • gilt für einen User und dessen Daten
  • ermöglicht Datenaustausch zwischen Zellen und Notebooks
  • wird durch viele Interpreter mit z angesprochen
  • hilft z.B. bei Anzeige oder übergreifenden Nutzung von Daten sowie Tabellen oder bei Formularerstellung

Unterschied zu Jupyter

  • Zeppelin im Netzwerk verfügbar und nicht nur lokal
  • Zeppelin mit vielen Interpretern
  • Zeppelin mit iframe-Integration
  • Zeppelin mit umfangreichen Sicherheitseinstellungen
  • Zeppelin weniger nutzerfreundlich, weil weniger Autocomplete oder Tastenkombinationen
  • Zeppelin umständlicher bei Publikation der Notebooks
  • Zeppelin eher für Unternehmen statt für Einzelpersonen geeignet

Demo

Einfacher Docker Container

docker run -p 8080:8080 --rm -d apache/zeppelin


Container für Version 0.11.2 mit Speicherung der Notebooks

docker run -p 8080:8080 --rm -v $PWD/notebook:/notebook -e ZEPPELIN_NOTEBOOK_DIR='/notebook' --name zeppelin -d apache/zeppelin:0.11.2

Demo

  • Notebooks haben Menuleiste oben
  • Paragraph beginnt mit % und dem Interpreterkürzel, z.B. %md für Markdown oder %r.ir für R-Code
  • Paragraphen können einzeln oder gemeinsam ausgeführt werden
  • Paragraphen mit diversen Einstellmöglichkeiten
  • teilweise mit interaktiven Schaltflächen innerhalb der Paragraphen

Literatur

  1. Offizielle Website

  2. Apache Zeppelin, Interpreter mode explained

  3. Introducing Apache Zeppelin (PDF)

  4. Zeppelin-Context

  5. Webbasierte Datenanalysen mit Apache Zeppelin

  6. Wie nutzen wir Apache Zeppelin für Big Data?

  7. Quarto Presentations

Hinauf in den Datenhimmel!

Zeppelin Logo

Zeppelin Logo