Előfeltételek
Java telepítése
Telepítse a Zeppelint
A Systemd konfigurálása
Fordított proxy konfigurálása
Az Anonymous Access letiltása
Engedélyezze a Shiro hitelesítést
Az Apache Zeppelin egy webalapú, nyílt forráskódú jegyzetfüzet és együttműködési eszköz interaktív adatfeldolgozáshoz, -felderítéshez, elemzéshez és megjelenítéshez. A Zeppelin több mint 20 nyelvet támogat, beleértve az Apache Sparkot, SQL-t, R-t, Elasticsearch-et és még sok más nyelvet. Az Apache Zeppelin segítségével gyönyörű, adatvezérelt dokumentumokat hozhat létre, és megtekintheti az elemzések eredményeit.
Előfeltételek
- Egy Vultr Ubuntu 16.04 szerverpéldány.
- Egy sudo felhasználó .
- Egy domain név a szerverre mutatott.
Ebben az oktatóanyagban zeppelin.example.com a Vultr példányra mutató tartománynévként fogjuk használni . Kérjük, ügyeljen arra, hogy a példa domain név minden előfordulását lecserélje a tényleges névre.
Frissítse alaprendszerét az Ubuntu 16.04 frissítése útmutató segítségével . A rendszer frissítése után folytassa a Java telepítésével.
Java telepítése
Az Apache Zeppelin Java nyelven íródott, ezért a működéséhez JDK szükséges. Adja hozzá az Oracle Java 8 Ubuntu tárházát.
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
Telepítse az Oracle Java-t.
sudo apt -y install oracle-java8-installer
Ellenőrizze a verzióját.
java -version
A következő kimenetet fogja látni.
user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
Állítsa be a Java alapértelmezett elérési útját a következő csomag telepítésével.
sudo apt -y install oracle-java8-set-default
Futással ellenőrizheti, hogy be JAVA_HOMEvan-e állítva.
echo $JAVA_HOME
Meglátod.
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
Ha egyáltalán nem látja a kimenetet, ki kell jelentkeznie az aktuális shellből, majd újra be kell jelentkeznie.
Telepítse a Zeppelint
Az Apache Zeppelin az összes függőséget a bináris fájlokkal együtt szállítja, így nem kell mást telepítenünk, csak a Java-t. Töltse le a Zeppelin bináris fájlt a rendszerére. Az alkalmazás legújabb verzióját mindig megtalálja a Zeppelin letöltési oldalán .
wget http://www-us.apache.org/dist/zeppelin/zeppelin-0.7.3/zeppelin-0.7.3-bin-all.tgz
Bontsa ki az archívumot.
sudo tar xf zeppelin-*-bin-all.tgz -C /opt
A fenti parancs kicsomagolja az archívumot ide /opt/zeppelin-0.7.3-bin-all. Nevezze át a könyvtárat a kényelem kedvéért.
sudo mv /opt/zeppelin-*-bin-all /opt/zeppelin
Az Apache Zeppelin most telepítve van. Azonnal elindíthatja az alkalmazást, de nem lesz elérhető, mivel csak hallgat localhost. Az Apache Zeppelint szolgáltatásként konfiguráljuk. Az Nginx-et fordított proxyként is konfiguráljuk.
Ebben a lépésben beállítunk egy Systemd unit fájlt a Zeppelin alkalmazáshoz. Ez biztosítja, hogy az alkalmazási folyamat automatikusan elinduljon a rendszer újraindításakor és meghibásodáskor.
Biztonsági okokból hozzon létre egy nem jogosult felhasználót a Zeppelin folyamat futtatásához.
sudo useradd -d /opt/zeppelin -s /bin/false zeppelin
Adja meg a fájlok tulajdonjogát az újonnan létrehozott Zeppelin felhasználónak.
sudo chown -R zeppelin:zeppelin /opt/zeppelin
Hozzon létre egy új Systemd szervizegység fájlt.
sudo nano /etc/systemd/system/zeppelin.service
Töltse ki a fájlt a következővel.
[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
Indítsa el az alkalmazást.
sudo systemctl start zeppelin
Engedélyezze a Zeppelin szolgáltatás automatikus indulását a rendszerindításkor.
sudo systemctl enable zeppelin
A szolgáltatás futásának biztosításához futtassa a következőket.
sudo systemctl status zeppelin
Alapértelmezés szerint a Zeppelin szerver localhost a porton figyel 8080. Az Nginx-et fordított proxyként fogjuk használni, hogy az alkalmazás szabványos HTTP és HTTPS portokon keresztül is elérhető legyen . Az Nginxet úgy is beállítjuk, hogy a Let's Encrypt ingyenes SSL CA-val generált SSL-t használjon.
Telepítse az Nginx-et.
sudo apt -y install nginx
Indítsa el az Nginx-et, és engedélyezze, hogy rendszerindításkor automatikusan elinduljon.
sudo systemctl start nginx
sudo systemctl enable nginx
Adja hozzá a Certbot adattárat.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Telepítse a Certbotot, amely a Let's Encrypt CA ügyfélalkalmazása.
sudo apt -y install certbot
Megjegyzés : A Let's Encrypt CA-tól tanúsítványok beszerzéséhez a tartományt, amelyhez a tanúsítványokat elő kell állítani, a szerver felé kell mutatni. Ha nem, hajtsa végre a szükséges módosításokat a tartomány DNS-rekordjain, és várja meg, amíg a DNS továbbterjed, mielőtt ismét kérelmet küldene. A Certbot a tanúsítványok kiadása előtt ellenőrzi a tartományi hatóságot.
Hozza létre az SSL-tanúsítványokat.
sudo certbot certonly --webroot -w /var/www/html -d zeppelin.example.com
A generált tanúsítványok valószínűleg a következő helyen lesznek tárolva /etc/letsencrypt/live/zeppelin.example.com/. Az SSL-tanúsítvány a következőként fullchain.pem , a magánkulcs pedig néven lesz tárolva privkey.pem.
A Titkosított tanúsítványok 90 napon belül lejárnak, ezért ajánlatos beállítani a tanúsítványok automatikus megújítását Cron jobokkal.
Nyissa meg a cron feladatfájlt.
sudo crontab -e
Adja hozzá a következő sort a fájl végéhez.
30 5 * * * /usr/bin/certbot renew --quiet
A fenti cron-feladat minden nap 5:30-kor fog futni. Ha a tanúsítvány lejárt, az automatikusan megújul.
Hozzon létre egy új szerverblokk fájlt a Zeppelin webhelyhez.
sudo nano /etc/nginx/sites-available/zeppelin
Töltse fel a fájlt.
upstream zeppelin {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name zeppelin.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name zeppelin.example.com;
ssl_certificate /etc/letsencrypt/live/zeppelin.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zeppelin.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/zeppelin.access.log;
location / {
proxy_pass http://zeppelin;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
}
location /ws {
proxy_pass http://zeppelin/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
proxy_read_timeout 86400;
}
}
Aktiválja a konfigurációs fájlt.
sudo ln -s /etc/nginx/sites-available/zeppelin /etc/nginx/sites-enabled/zeppelin
Indítsa újra az Nginxet, hogy a változtatások érvénybe lépjenek.
sudo systemctl restart nginx zeppelin
A Zeppelin már elérhető a következő címen.
https://zeppelin.example.com
Alapértelmezés szerint nincs engedélyezve a hitelesítés, így közvetlenül használhatja az alkalmazást.
Mivel az alkalmazás mindenki számára elérhető, az Ön által létrehozott jegyzetfüzetek is mindenki számára elérhetőek. Nagyon fontos az anonim hozzáférés letiltása és a hitelesítés engedélyezése, hogy csak a hitelesített felhasználók férhessenek hozzá az alkalmazáshoz.
Az Anonymous Access letiltása
Az alapértelmezett névtelen hozzáférés letiltásához másolja a konfigurációs fájl sablonját az élő helyére.
cd /opt/zeppelin
sudo cp conf/zeppelin-site.xml.template conf/zeppelin-site.xml
Szerkessze a konfigurációs fájlt.
sudo nano conf/zeppelin-site.xml
Keresse meg a következő sorokat a fájlban.
<property>
<name>zeppelin.anonymous.allowed</name>
<value>true</value>
Módosítsa az értéket false a névtelen hozzáférés letiltásához.
Engedélyezze a Shiro hitelesítést
Most, hogy letiltottuk az anonim hozzáférést, engedélyeznünk kell valamilyen hitelesítési mechanizmust, hogy a privilegizált felhasználók bejelentkezhessenek. Az Apache Zeppelin Apache Shiro hitelesítést használ. Másolja a Shiro konfigurációs fájlt.
sudo cp conf/shiro.ini.template conf/shiro.ini
Szerkessze a konfigurációs fájlt.
sudo nano conf/shiro.ini
Keresse meg a következő sorokat a fájlban.
[users]
admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2
A lista tartalmazza a felhasználók felhasználónevét, jelszavát és szerepkörét. Egyelőre csak a admin és -t fogjuk használni user1. Módosítsa a jelszavát, admin és user1 tiltsa le a többi felhasználót megjegyzésekkel. A felhasználók felhasználónevét és szerepköreit is módosíthatja. Ha többet szeretne megtudni az Apache Shiro felhasználókról és szerepekről, olvassa el a Shiro engedélyezési útmutatót .
Miután megváltoztatta a jelszavakat, a kódblokknak így kell lennie.
[users]
admin = StrongPassword, admin
user1 = UserPassword, role1, role2
# user2 = password3, role3
# user3 = password4, role2
Most indítsa újra a Zeppelint a módosítások alkalmazásához.
sudo systemctl restart zeppelin
Látni fogja, hogy a hitelesítés engedélyezve van, és be tud majd jelentkezni a Shiro konfigurációs fájljában megadott felhasználónévvel és jelszóval.