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:
java -version
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:
readlink -f $(which java)
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:
source ~/.bash_profile
Ü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:
sudo nano conf/shiro.ini
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.