Hoe Apache Zeppelin op Ubuntu 16.04 te installeren

Apache Zeppelin is een webgebaseerde open source notebook en samenwerkingstool voor interactieve data-opname, ontdekking, analyse en visualisatie. Zeppelin ondersteunt meer dan 20 talen, waaronder Apache Spark, SQL, R, Elasticsearch en nog veel meer. Met Apache Zeppelin kunt u prachtige gegevensgestuurde documenten maken en de resultaten van uw analyses bekijken.

Vereisten

  • Een Vultr Ubuntu 16.04-serverinstantie.
  • Een sudo-gebruiker .
  • Een domeinnaam wees naar de server.

Voor deze zelfstudie gebruiken we zeppelin.example.com de domeinnaam die naar de Vultr-instantie verwijst. Zorg ervoor dat u alle exemplaren van de voorbeelddomeinnaam vervangt door de werkelijke.

Update uw basissysteem met behulp van de handleiding Ubuntu 16.04 bijwerken . Zodra uw systeem is bijgewerkt, gaat u verder met de installatie van Java.

Installeer Java

Apache Zeppelin is geschreven in Java, dus het vereist JDK om te werken. Voeg de Ubuntu-repository voor Oracle Java 8 toe.

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

Installeer Oracle Java.

sudo apt -y install oracle-java8-installer

Controleer de versie.

java -version

Je ziet de volgende output.

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)

Stel het standaardpad voor Java in door het volgende pakket te installeren.

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

U kunt controleren of dit JAVA_HOMEis ingesteld door te draaien.

echo $JAVA_HOME

Je zult zien.

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

Als u helemaal geen uitvoer ziet, moet u zich afmelden bij de huidige shell en weer inloggen.

Installeer Zeppelin

Apache Zeppelin verzendt alle afhankelijkheden samen met de binaire bestanden, dus we hoeven niets anders te installeren dan Java. Download het Zeppelin-binaire bestand op uw systeem. Je kunt altijd de nieuwste versie van de applicatie vinden op de downloadpagina van Zeppelin .

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

Pak het archief uit.

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

Met de bovenstaande opdracht wordt het archief uitgepakt /opt/zeppelin-0.7.3-bin-all. Wijzig de directory voor het gemak.

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

Apache Zeppelin is nu geïnstalleerd. U kunt de applicatie onmiddellijk starten, maar deze is niet toegankelijk voor u, omdat er localhostalleen naar wordt geluisterd. We zullen Apache Zeppelin configureren als een service. We zullen Nginx ook configureren als een reverse proxy.

Configureer Systemd

In deze stap zullen we een Systemd-eenheidsbestand opzetten voor de Zeppelin-applicatie. Dit zorgt ervoor dat het aanvraagproces automatisch wordt gestart bij het herstarten van het systeem en bij storingen.

Maak om veiligheidsredenen een onbevoegde gebruiker voor het uitvoeren van het Zeppelin-proces.

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

Geef de bestanden aan de nieuw aangemaakte Zeppelin-gebruiker.

sudo chown -R zeppelin:zeppelin /opt/zeppelin

Maak een nieuw Systemd service unit-bestand.

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

Vul het bestand in met het volgende.

[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

Start de applicatie.

sudo systemctl start zeppelin

Schakel de Zeppelin-service in om automatisch te starten tijdens het opstarten.

sudo systemctl enable zeppelin

Om ervoor te zorgen dat de service actief is, kunt u het volgende uitvoeren.

sudo systemctl status zeppelin

Configureer Reverse Proxy

Standaard luistert de Zeppelin-server naar de localhost poort 8080. We zullen Nginx gebruiken als een reverse proxy, zodat de applicatie toegankelijk is via standaard HTTP en HTTPS poorten. We zullen Nginx ook configureren om een ​​SSL te gebruiken die is gegenereerd met Let's Encrypt gratis SSL CA.

Installeer Nginx.

sudo apt -y install nginx

Start Nginx en schakel het automatisch in tijdens het opstarten.

sudo systemctl start nginx
sudo systemctl enable nginx

Voeg de Certbot-repository toe.

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

Installeer Certbot, de clienttoepassing voor Let's Encrypt CA.

sudo apt -y install certbot

Opmerking : om certificaten van Let's Encrypt CA te verkrijgen, moet het domein waarvoor de certificaten moeten worden gegenereerd, naar de server worden gericht. Zo niet, breng dan de nodige wijzigingen aan in de DNS-records van het domein en wacht tot de DNS is gepropageerd voordat u opnieuw een certificaataanvraag indient. Certbot controleert de domeinautoriteit voordat de certificaten worden verstrekt.

Genereer de SSL-certificaten.

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

De gegenereerde certificaten worden waarschijnlijk opgeslagen in /etc/letsencrypt/live/zeppelin.example.com/. Het SSL-certificaat wordt opgeslagen als fullchain.pem en de privésleutel wordt opgeslagen als privkey.pem.

Let's Encrypt-certificaten verlopen over 90 dagen, daarom wordt aanbevolen om de automatische verlenging van de certificaten in te stellen met Cron-taken.

Open het cron-taakbestand.

sudo crontab -e

Voeg de volgende regel toe aan het einde van het bestand.

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

De bovenstaande cron-taak wordt elke dag om 05.30 uur uitgevoerd. Als het certificaat vervalt, wordt het automatisch verlengd.

Maak een nieuw serverblokbestand voor de Zeppelin-site.

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

Vul het bestand in.

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

Activeer het configuratiebestand.

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

Start Nginx opnieuw op zodat de wijzigingen van kracht kunnen worden.

sudo systemctl restart nginx zeppelin

Zeppelin is nu toegankelijk op het volgende adres.

https://zeppelin.example.com

Standaard is er geen authenticatie ingeschakeld, dus u kunt de applicatie rechtstreeks gebruiken.

Omdat de applicatie voor iedereen toegankelijk is, zijn de notitieboeken die u maakt ook voor iedereen toegankelijk. Het is erg belangrijk om anonieme toegang uit te schakelen en authenticatie in te schakelen, zodat alleen de geverifieerde gebruikers toegang hebben tot de applicatie.

Anonieme toegang uitschakelen

Om de standaard anonieme toegang uit te schakelen, kopieert u de configuratiebestandssjabloon naar de live locatie.

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

Bewerk het configuratiebestand.

sudo nano conf/zeppelin-site.xml

Zoek de volgende regels in het bestand.

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

Wijzig de waarde in false om de anonieme toegang uit te schakelen.

Schakel Shiro-verificatie in

Nu we de anonieme toegang hebben uitgeschakeld, moeten we een soort authenticatiemechanisme inschakelen zodat bevoorrechte gebruikers kunnen inloggen. Apache Zeppelin gebruikt Apache Shiro-authenticatie. Kopieer het Shiro-configuratiebestand.

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

Bewerk het configuratiebestand.

sudo nano conf/shiro.ini

Zoek de volgende regels in het bestand.

[users]

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

De lijst bevat de gebruikersnaam, het wachtwoord en de rollen van de gebruikers. Voorlopig gebruiken we alleen admin en user1. Wijzig het wachtwoord van admin en user1 en schakel de andere gebruikers uit door ze een opmerking te geven. U kunt ook de gebruikersnaam en rollen van de gebruikers wijzigen. Lees de Shiro-autorisatiegids voor meer informatie over Apache Shiro-gebruikers en -rollen .

Zodra u de wachtwoorden heeft gewijzigd, zou het codeblok dit leuk moeten vinden.

[users]

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

Start Zeppelin nu opnieuw op om de wijzigingen toe te passen.

sudo systemctl restart zeppelin

U zult zien dat de authenticatie is ingeschakeld en u kunt inloggen met de gebruikersnaam en het wachtwoord die zijn ingesteld in het Shiro-configuratiebestand.



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.