Apache Zeppelin Installationsanleitung für CentOS 7

Apache Zeppelin ist ein webbasiertes, quelloffenes Notebook-Tool für interaktive Datenverarbeitung – darunter Datenaufnahme, Analyse, Auswertung und Visualisierung. Es unterstützt mehr als 20 Programmiersprachen, darunter Apache Spark, SQL, R und Elasticsearch. Mit Zeppelin kannst du optisch ansprechende datenzentrierte Notizen erstellen und sofortige Einblicke aus deinen Analysen gewinnen.

Voraussetzungen

  • Ein CentOS-7-Server
  • Ein Benutzer mit sudo-Rechten
  • Eine Domain, die auf den Server zeigt

In dieser Anleitung wird als Beispiel zeppelin.example.com verwendet. Ersetze diese Domain durch deine tatsächliche Domain.

Bevor du beginnst, stelle sicher, dass dein System auf dem aktuellen Stand ist. Lies dazu ggf. die Anleitung How to Update CentOS 7. Danach kannst du Java installieren.

Java installieren

Da Apache Zeppelin auf Java basiert, wird ein JDK benötigt. Lade zuerst das RPM-Paket der Oracle SE JDK herunter:

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm"

Installiere das heruntergeladene RPM-Paket nun mit folgendem Befehl:

sudo yum -y localinstall jdk-8u151-linux-x64.rpm

Nach erfolgreicher Installation kannst du die Java-Version zur Verifikation anzeigen lassen:

Die erwartete Ausgabe sieht so aus:


[user@centron~]$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)


JAVA_HOME und JRE_HOME setzen

Bevor du fortfährst, solltest du die Umgebungsvariablen JAVA_HOME und JRE_HOME korrekt setzen. Ermittele zunächst den vollständigen Pfad zur installierten Java-Version:

Die Ausgabe sollte etwa wie folgt aussehen:

[user@centron ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_151/jre/bin/java

Exportiere nun die Umgebungsvariablen anhand des ermittelten Java-Pfads:

echo "export JAVA_HOME=/usr/java/jdk1.8.0_151" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_151/jre" >> ~/.bash_profile

Lade die geänderte Bash-Konfiguration neu, damit die Variablen aktiv werden:

Überprüfe abschließend, ob die Variable JAVA_HOME korrekt gesetzt wurde:

[user@centron~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_151

Apache Zeppelin installieren

Apache Zeppelin bringt alle notwendigen Abhängigkeiten im Binärpaket mit – Java ist die einzige externe Voraussetzung. Lade zunächst das aktuelle Zeppelin-Binary von der offiziellen Download-Seite herunter:

wget http://www-us.apache.org/dist/zeppelin/zeppelin-0.7.3/zeppelin-0.7.3-bin-all.tgz

Entpacke das Archiv mit folgendem Befehl:

sudo tar xf zeppelin-*-bin-all.tgz -C /opt

Die Dateien werden im Verzeichnis /opt/zeppelin-0.7.3-bin-all abgelegt. Benenne dieses Verzeichnis zur besseren Übersicht um:

sudo mv /opt/zeppelin-*-bin-all /opt/zeppelin

Apache Zeppelin ist nun installiert. Die Anwendung kann theoretisch sofort gestartet werden – allerdings ist sie standardmäßig nur über localhost erreichbar. Im nächsten Schritt richten wir Zeppelin als Systemd-Dienst ein und bereiten die Konfiguration für den Reverse Proxy mit Nginx vor.

Zeppelin als Systemd-Dienst einrichten

Im nächsten Schritt richtest du Apache Zeppelin als Systemd-Dienst ein. Damit wird sichergestellt, dass Zeppelin beim Systemstart automatisch gestartet wird und auch nach einem Absturz neu geladen wird.

Erstelle zunächst einen dedizierten, nicht privilegierten Systembenutzer für Zeppelin:

sudo adduser -d /opt/zeppelin -s /sbin/nologin zeppelin

Weise diesem Benutzer den Besitz der Zeppelin-Installationsdateien zu:

sudo chown -R zeppelin:zeppelin /opt/zeppelin

Lege nun eine neue Systemd-Unit-Datei für den Zeppelin-Dienst an:

sudo nano /etc/systemd/system/zeppelin.service

Füge den folgenden Inhalt in die Datei ein:

[Unit]
Description=Zeppelin service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/zeppelin/bin/zeppelin-daemon.sh start
ExecStop=/opt/zeppelin/bin/zeppelin-daemon.sh stop
ExecReload=/opt/zeppelin/bin/zeppelin-daemon.sh reload
User=zeppelin
Group=zeppelin
Restart=always

[Install]
WantedBy=multi-user.target

Starte nun den Zeppelin-Dienst manuell:

sudo systemctl start zeppelin

Aktiviere zusätzlich den automatischen Start bei jedem Systemboot:

sudo systemctl enable zeppelin

Prüfe zum Schluss, ob der Dienst erfolgreich gestartet wurde:


sudo systemctl status zeppelin


Anonymen Zugriff in Apache Zeppelin deaktivieren

Um den standardmäßigen anonymen Zugriff zu deaktivieren, kopiere zunächst die Vorlagendatei für die Konfiguration an ihren aktiven Speicherort:

cd /opt/zeppelin
sudo cp conf/zeppelin-site.xml.template conf/zeppelin-site.xml

Bearbeite anschließend die Konfigurationsdatei:

sudo nano conf/zeppelin-site.xml

Suche in der Datei nach dem folgenden Abschnitt:

<property>
  <name>zeppelin.anonymous.allowed</name>
  <value>true</value>

Ändere den Wert von true auf false, um den anonymen Zugriff zu deaktivieren.

Shiro-Authentifizierung aktivieren

Nach dem Deaktivieren des anonymen Zugriffs ist eine Authentifizierung erforderlich. Apache Zeppelin nutzt dafür Apache Shiro. Kopiere zunächst die Konfigurationsvorlage:

sudo cp conf/shiro.ini.template conf/shiro.ini

Öffne die Datei zur Bearbeitung:

Im Abschnitt [users] findest du die folgenden Beispielkonten:

[users]

admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2

Dieser Abschnitt legt Benutzer, Passwörter und Rollen fest. In diesem Setup werden nur admin und user1 verwendet. Ändere deren Passwörter zu sicheren Werten und kommentiere die anderen Benutzer aus:

[users]

admin = StrongPassword, admin
user1 = UserPassword, role1, role2
# user2 = password3, role3
# user3 = password4, role2

Du kannst Benutzernamen und Rollen nach Bedarf anpassen. Für detaillierte Informationen siehe die Dokumentation zur Shiro-Authentifizierung.

Starte Zeppelin neu, um die Änderungen zu übernehmen:

sudo systemctl restart zeppelin

Nach dem Neustart ist die Authentifizierung aktiv, und Benutzer müssen sich mit den in shiro.ini hinterlegten Zugangsdaten anmelden.

Fazit

Du hast Apache Zeppelin erfolgreich installiert, abgesichert und als Dienst unter CentOS 7 eingerichtet. Der anonyme Zugriff ist deaktiviert, eine Authentifizierung via Apache Shiro aktiviert und der Dienst für den automatischen Start beim Booten konfiguriert. Auf dieser Basis kannst du Zeppelin nun weiter anpassen – etwa durch die Integration eines Reverse-Proxys mit Nginx oder die Anbindung von Analyse-Backends wie Apache Spark oder Elasticsearch.

Diese Grundkonfiguration bildet das Fundament für kollaborative, interaktive Datenanalyse-Workflows auf deinem eigenen Server.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: