Parakushtet
Instaloni Java
Instaloni Zeppelin
Konfiguro shërbimin Systemd
Konfiguro përfaqësuesin e kundërt
Çaktivizo qasjen anonime
Aktivizo vërtetimin Shiro
Apache Zeppelin është një fletore me burim të hapur të bazuar në ueb dhe mjet bashkëpunues për gëlltitjen, zbulimin, analitikën dhe vizualizimin ndërveprues të të dhënave. Zeppelin mbështet 20+ gjuhë duke përfshirë Apache Spark, SQL, R, Elasticsearch dhe shumë të tjera. Apache Zeppelin ju lejon të krijoni dokumente të bukura të drejtuara nga të dhënat dhe të shihni rezultatet e analizave tuaja.
Parakushtet
- Një shembull i serverit Vultr CentOS 7.
- Një përdorues sudo .
- Një emër domaini i drejtuar drejt serverit.
Për këtë tutorial, ne do të përdorim zeppelin.example.comsi emër domaini të drejtuar drejt shembullit Vultr. Ju lutemi sigurohuni që të zëvendësoni të gjitha dukuritë e emrit të domenit shembull me atë aktual.
Përditësoni sistemin tuaj bazë duke përdorur udhëzuesin Si të përditësoni CentOS 7 . Pasi sistemi juaj të jetë përditësuar, vazhdoni të instaloni Java.
Instaloni Java
Apache Zeppelin është shkruar në Java, kështu që kërkon që JDK të funksionojë. Shkarkoni paketën Oracle SE JDK RPM.
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"
Instaloni paketën e shkarkuar.
sudo yum -y localinstall jdk-8u151-linux-x64.rpm
Nëse Java është instaluar me sukses, atëherë duhet të jeni në gjendje të verifikoni versionin e saj.
java -version
Do të shihni daljen e mëposhtme.
[user@vultr ~]$ 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)
Përpara se të vazhdojmë më tej, do të na duhet të vendosim variablat JAVA_HOMEdhe JRE_HOMEmjedisin. Gjeni rrugën absolute të ekzekutuesit JAVA në sistemin tuaj.
readlink -f $(which java)
Do të shihni një dalje të ngjashme.
[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_151/jre/bin/java
Tani, vendosni variablat JAVA_HOMEdhe JRE_HOMEmjedisin sipas shtegut të drejtorisë Java.
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
Ekzekutoni bash_profileskedarin.
source ~/.bash_profile
Tani mund të ekzekutoni echo $JAVA_HOMEkomandën për të kontrolluar nëse ndryshorja e mjedisit është vendosur.
[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_151
Instaloni Zeppelin
Apache Zeppelin dërgon të gjitha varësitë së bashku me skedarët binare, kështu që nuk kemi nevojë të instalojmë asgjë tjetër përveç Java. Shkarkoni binarin Zeppelin në sistemin tuaj. Versionin më të fundit të aplikacionit mund ta gjeni gjithmonë në faqen e shkarkimit të Zeppelin .
wget http://www-us.apache.org/dist/zeppelin/zeppelin-0.7.3/zeppelin-0.7.3-bin-all.tgz
Ekstraktoni arkivin.
sudo tar xf zeppelin-*-bin-all.tgz -C /opt
Komanda e mësipërme do ta nxjerrë arkivin në /opt/zeppelin-0.7.3-bin-all. Riemërtoni drejtorinë për lehtësi.
sudo mv /opt/zeppelin-*-bin-all /opt/zeppelin
Apache Zeppelin është instaluar tani. Mund ta nisni menjëherë aplikacionin, por ai nuk do të jetë i aksesueshëm për ju, pasi localhostvetëm dëgjon . Ne do të konfigurojmë Apache Zeppelin si një shërbim. Ne gjithashtu do të konfigurojmë serverin në internet Nginx si një përfaqësues të kundërt.
Në këtë hap, ne do të konfigurojmë një skedar të njësisë Systemd për aplikacionin Zeppelin. Kjo do të sigurojë që procesi i aplikimit të fillojë automatikisht në rinisjen e sistemit dhe dështimet.
Për arsye sigurie, krijoni një përdorues të paprivilegjuar për ekzekutimin e procesit Zeppelin.
sudo adduser -d /opt/zeppelin -s /sbin/nologin zeppelin
Jepni pronësinë e skedarëve përdoruesit të sapokrijuar të Zeppelin.
sudo chown -R zeppelin:zeppelin /opt/zeppelin
Krijo një skedar të ri të njësisë së shërbimit Systemd.
sudo nano /etc/systemd/system/zeppelin.service
Plotësoni skedarin me sa vijon.
[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
Filloni aplikacionin.
sudo systemctl start zeppelin
Aktivizo shërbimin Zeppelin që të fillojë automatikisht në kohën e nisjes.
sudo systemctl enable zeppelin
Për të kontrolluar nëse shërbimi po funksionon, mund të ekzekutoni sa më poshtë.
sudo systemctl status zeppelin
Si parazgjedhje, serveri Zeppelin dëgjon localhostnë port 8080. Në këtë tutorial, ne do të përdorim Nginx si një përfaqësues të kundërt në mënyrë që aplikacioni të mund të aksesohet përmes standardit HTTPdhe HTTPSporteve. Ne gjithashtu do të konfigurojmë Nginx për të përdorur SSL të krijuar me Let's Encrypt SSL CA pa pagesë.
Instaloni Nginx.
sudo yum -y install nginx
Nisni Nginx dhe aktivizoni që të fillojë automatikisht në kohën e nisjes.
sudo systemctl start nginx
sudo systemctl enable nginx
Instaloni Certbot, i cili është aplikacioni i klientit për Let's Encrypt CA.
sudo yum -y install certbot
Përpara se të mund të kërkoni certifikatat, do t'ju duhet të lejoni portin 80dhe 443ose standardin HTTPdhe HTTPSshërbimet përmes murit të zjarrit.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Shënim : Për të marrë certifikata nga Let's Encrypt CA, domeni për të cilin do të gjenerohen certifikatat duhet të drejtohet drejt serverit. Nëse jo, bëni ndryshimet e nevojshme në të dhënat DNS të domenit dhe prisni që DNS të përhapet përpara se të bëni përsëri kërkesën për certifikatë. Certbot kontrollon autoritetin e domenit përpara se të japë certifikatat.
Gjeneroni certifikatat SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d zeppelin.example.com
Certifikatat e krijuara ka të ngjarë të ruhen në /etc/letsencrypt/live/zeppelin.example.com/. Certifikata SSL do të ruhet si fullchain.pemdhe çelësi privat do të ruhet si privkey.pem.
Le të Enkriptojmë certifikatat skadojnë për 90 ditë, prandaj rekomandohet të konfiguroni rinovimin automatik të certifikatave duke përdorur Cron jobs.
Hapni skedarin e punës cron.
sudo crontab -e
Shtoni rreshtin e mëposhtëm në fund të skedarit.
30 5 * * * /usr/bin/certbot renew --quiet
Puna e mësipërme e cron do të funksionojë çdo ditë në orën 5:30 të mëngjesit. Nëse certifikata duhet të skadojë, ajo do t'i rinovojë ato automatikisht.
Krijoni një skedar të ri të bllokut të serverit për faqen Zeppelin.
sudo nano /etc/nginx/conf.d/zeppelin.example.com.conf
Plotësoni skedarin.
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;
}
}
Rinisni Nginx në mënyrë që ndryshimet të hyjnë në fuqi.
sudo systemctl restart nginx zeppelin
Zeppelin tani është i aksesueshëm në adresën e mëposhtme.
https://zeppelin.example.com
Si parazgjedhje, nuk është aktivizuar vërtetimi, kështu që ju mund ta përdorni aplikacionin drejtpërdrejt.
Meqenëse aplikacioni është i aksesueshëm për të gjithë, fletoret që krijoni janë gjithashtu të aksesueshme për të gjithë. Është shumë e rëndësishme të çaktivizoni aksesin anonim dhe të aktivizoni vërtetimin në mënyrë që vetëm përdoruesit e vërtetuar të kenë akses në aplikacion.
Çaktivizo qasjen anonime
Për të çaktivizuar aksesin anonim të paracaktuar, kopjoni shabllonin e skedarit të konfigurimit në vendndodhjen e tij të drejtpërdrejtë.
cd /opt/zeppelin
sudo cp conf/zeppelin-site.xml.template conf/zeppelin-site.xml
Redaktoni skedarin e konfigurimit.
sudo nano conf/zeppelin-site.xml
Gjeni rreshtat e mëposhtëm në skedar.
<property>
<name>zeppelin.anonymous.allowed</name>
<value>true</value>
Ndrysho vlerën në falsepër të çaktivizuar aksesin anonim.
Aktivizo vërtetimin Shiro
Tani që kemi çaktivizuar aksesin anonim, duhet të aktivizojmë një lloj mekanizmi vërtetimi në mënyrë që përdoruesit e privilegjuar të mund të identifikohen. Apache Zeppelin përdor vërtetimin Apache Shiro. Kopjoni skedarin e konfigurimit Shiro.
sudo cp conf/shiro.ini.template conf/shiro.ini
Redaktoni skedarin e konfigurimit.
sudo nano conf/shiro.ini
Gjeni rreshtat e mëposhtëm në skedar.
[users]
admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2
Lista përmban emrin e përdoruesit, fjalëkalimin dhe rolet e përdoruesve. Për momentin, ne do të përdorim vetëm admindhe user1. Ndryshoni fjalëkalimin admindhe user1çaktivizoni përdoruesit e tjerë duke i komentuar ata. Ju gjithashtu mund të ndryshoni emrin e përdoruesit dhe rolet e përdoruesve. Për të mësuar më shumë rreth përdoruesve dhe roleve të Apache Shiro, lexoni udhëzuesin e autorizimit Shiro .
Pasi të keni ndryshuar fjalëkalimet, blloku i kodeve duhet të duket kështu.
[users]
admin = StrongPassword, admin
user1 = UserPassword, role1, role2
# user2 = password3, role3
# user3 = password4, role2
Tani rinisni Zeppelin për të aplikuar ndryshimet.
sudo systemctl restart zeppelin
Duhet të shihni që vërtetimi është aktivizuar dhe do të mund të identifikoheni duke përdorur emrin e përdoruesit dhe fjalëkalimin e vendosur në skedarin e konfigurimit Shiro.