Kako instalirati Apache Zeppelin na Ubuntu 16.04

Apache Zeppelin je web-bazirano prijenosno računalo otvorenog koda i alat za suradnju za interaktivno unos podataka, otkrivanje, analitiku i vizualizaciju. Zeppelin podržava više od 20 jezika uključujući Apache Spark, SQL, R, Elasticsearch i mnoge druge. Apache Zeppelin vam omogućuje stvaranje prekrasnih dokumenata vođenih podacima i pregled rezultata vaše analitike.

Preduvjeti

  • Instanca poslužitelja Vultr Ubuntu 16.04.
  • Korisnik sudoa .
  • Naziv domene usmjeren prema poslužitelju.

Za ovaj vodič koristit ćemo zeppelin.example.com kao ime domene usmjereno na Vultr instancu. Svakako zamijenite sva pojavljivanja primjera naziva domene stvarnim.

Ažurirajte svoj osnovni sustav pomoću vodiča Kako ažurirati Ubuntu 16.04 . Nakon što se vaš sustav ažurira, nastavite s instalacijom Jave.

Instalirajte Javu

Apache Zeppelin je napisan na Javi, stoga je za rad potreban JDK. Dodajte Ubuntu spremište za Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Instalirajte Oracle Javu.

sudo apt -y install oracle-java8-installer

Provjerite njegovu verziju.

java -version

Vidjet ćete sljedeći izlaz.

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)

Postavite zadani put za Javu instaliranjem sljedećeg paketa.

sudo apt -y install oracle-java8-set-default

Možete provjeriti je li JAVA_HOMEpostavljeno pokretanjem.

echo $JAVA_HOME

Vidjet ćeš.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Ako uopće ne vidite nikakav izlaz, morat ćete se odjaviti iz trenutne ljuske i ponovno se prijaviti.

Instalirajte Zeppelin

Apache Zeppelin isporučuje sve ovisnosti zajedno s binarnim datotekama, tako da ne moramo instalirati ništa drugo osim Jave. Preuzmite binarni program Zeppelin na svoj sustav. Najnoviju verziju aplikacije uvijek možete pronaći na stranici za preuzimanje Zeppelina .

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

Ekstrahirajte arhivu.

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

Gornja naredba će izdvojiti arhivu u /opt/zeppelin-0.7.3-bin-all. Preimenujte imenik radi praktičnosti.

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

Apache Zeppelin je sada instaliran. Možete odmah pokrenuti aplikaciju, ali ona vam neće biti dostupna, jer samo sluša localhost. Apache Zeppelin ćemo konfigurirati kao uslugu. Nginx ćemo također konfigurirati kao obrnuti proxy.

Konfigurirajte Systemd

U ovom koraku ćemo postaviti Systemd jediničnu datoteku za Zeppelin aplikaciju. To će osigurati da se proces prijave automatski pokrene nakon ponovnog pokretanja sustava i kvarova.

Iz sigurnosnih razloga stvorite neprivilegiranog korisnika za pokretanje Zeppelin procesa.

sudo useradd -d /opt/zeppelin -s /bin/false zeppelin

Omogućite vlasništvo nad datotekama novostvorenom korisniku Zeppelina.

sudo chown -R zeppelin:zeppelin /opt/zeppelin

Napravite novu datoteku Systemd servisne jedinice.

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

Popunite datoteku sljedećim.

[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

Pokrenite aplikaciju.

sudo systemctl start zeppelin

Omogućite uslugu Zeppelin da se automatski pokrene prilikom pokretanja.

sudo systemctl enable zeppelin

Kako biste bili sigurni da je usluga pokrenuta, možete pokrenuti sljedeće.

sudo systemctl status zeppelin

Konfigurirajte obrnuti proxy

Prema zadanim postavkama, Zeppelin poslužitelj sluša localhost port 8080. Koristit ćemo Nginx kao obrnuti proxy tako da se aplikaciji može pristupiti putem standarda HTTP i HTTPS portova. Također ćemo konfigurirati Nginx da koristi SSL generiran s Let's Encrypt besplatnim SSL CA.

Instalirajte Nginx.

sudo apt -y install nginx

Pokrenite Nginx i omogućite mu automatsko pokretanje prilikom pokretanja.

sudo systemctl start nginx
sudo systemctl enable nginx

Dodajte Certbot repozitorij.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Instalirajte Certbot, klijentsku aplikaciju za Let's Encrypt CA.

sudo apt -y install certbot

Napomena : Za dobivanje certifikata od Let's Encrypt CA, domena za koju se certifikati trebaju generirati mora biti usmjerena prema poslužitelju. Ako nije, izvršite potrebne promjene u DNS zapisima domene i pričekajte da se DNS širi prije nego što ponovno uputite zahtjev za certifikatom. Certbot provjerava autoritet domene prije pružanja certifikata.

Generirajte SSL certifikate.

sudo certbot certonly --webroot -w /var/www/html -d zeppelin.example.com

Generirani certifikati vjerojatno će biti pohranjeni u /etc/letsencrypt/live/zeppelin.example.com/. SSL certifikat će biti pohranjen kao, fullchain.pem a privatni ključ će biti pohranjen kao privkey.pem.

Let's Encrypt certifikati istječu za 90 dana, stoga je preporučljivo postaviti automatsku obnovu certifikata pomoću Cron poslova.

Otvorite cron datoteku posla.

sudo crontab -e

Dodajte sljedeći redak na kraj datoteke.

30 5 * * * /usr/bin/certbot renew --quiet

Gornji cron posao će se izvoditi svaki dan u 5:30 ujutro. Ako potvrda istekne, automatski će se obnoviti.

Napravite novu datoteku bloka poslužitelja za Zeppelin stranicu.

sudo nano /etc/nginx/sites-available/zeppelin

Popunite datoteku.

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;
    }
  }

Aktivirajte konfiguracijsku datoteku.

sudo ln -s /etc/nginx/sites-available/zeppelin /etc/nginx/sites-enabled/zeppelin

Ponovno pokrenite Nginx kako bi promjene stupile na snagu.

sudo systemctl restart nginx zeppelin

Zeppelin je sada dostupan na sljedećoj adresi.

https://zeppelin.example.com

Prema zadanim postavkama, autentifikacija nije omogućena, tako da možete izravno koristiti aplikaciju.

Budući da je aplikacija dostupna svima, bilježnice koje izradite također su dostupne svima. Vrlo je važno onemogućiti anonimni pristup i omogućiti autentifikaciju kako bi samo provjereni korisnici mogli pristupiti aplikaciji.

Onemogućite anonimni pristup

Da biste onemogućili zadani anonimni pristup, kopirajte predložak konfiguracijske datoteke na njegovu lokaciju uživo.

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

Uredite konfiguracijsku datoteku.

sudo nano conf/zeppelin-site.xml

Pronađite sljedeće retke u datoteci.

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

Promijenite vrijednost na false da biste onemogućili anonimni pristup.

Omogući Shiro autentifikaciju

Sada kada smo onemogućili anonimni pristup, moramo omogućiti neku vrstu mehanizma provjere autentičnosti kako bi se privilegirani korisnici mogli prijaviti. Apache Zeppelin koristi Apache Shiro autentifikaciju. Kopirajte konfiguracijsku datoteku Shiro.

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

Uredite konfiguracijsku datoteku.

sudo nano conf/shiro.ini

Pronađite sljedeće retke u datoteci.

[users]

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

Popis sadrži korisničko ime, lozinku i uloge korisnika. Za sada ćemo koristiti samo admin i user1. Promjena lozinke admin i user1 te onemogućiti ostale korisnike komentiranjem. Također možete promijeniti korisničko ime i uloge korisnika. Da biste saznali više o korisnicima i ulogama Apache Shiroa, pročitajte vodič za autorizaciju za Shiro .

Nakon što promijenite lozinke, blok koda bi trebao izgledati ovako.

[users]

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

Sada ponovno pokrenite Zeppelin kako biste primijenili promjene.

sudo systemctl restart zeppelin

Vidjet ćete da je autentifikacija omogućena i moći ćete se prijaviti pomoću korisničkog imena i lozinke postavljene u konfiguracijskoj datoteci Shiro.

Ostavite komentar

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više