Hoe Apache Zeppelin op CentOS 7 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 CentOS 7-serverinstantie.
  • Een sudo-gebruiker .
  • Een domeinnaam wees naar de server.

Voor deze zelfstudie gebruiken we zeppelin.example.comde 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 CentOS 7 updaten . 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. Download Oracle SE JDK RPM-pakket.

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"

Installeer het gedownloade pakket.

sudo yum -y localinstall jdk-8u151-linux-x64.rpm

Als Java met succes is geïnstalleerd, moet u de versie ervan kunnen verifiëren.

java -version

Je ziet de volgende output.

[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)

Voordat we verder kunnen gaan, moeten we de JAVA_HOMEen JRE_HOMEomgevingsvariabelen instellen. Vind het absolute pad van het JAVA-uitvoerbare bestand in uw systeem.

readlink -f $(which java)

U zult een vergelijkbare uitvoer zien.

[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_151/jre/bin/java

Stel nu de JAVA_HOMEen JRE_HOMEomgevingsvariabelen in volgens het pad van de Java-directory.

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

Voer het bash_profilebestand uit.

source ~/.bash_profile

Nu kunt u de echo $JAVA_HOMEopdracht uitvoeren om te controleren of de omgevingsvariabele is ingesteld.

[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_151

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 de Nginx-webserver ook configureren als een reverse proxy.

Configureer de Systemd-service

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 adduser -d /opt/zeppelin -s /sbin/nologin 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 te controleren of de service actief is, kunt u het volgende doen.

sudo systemctl status zeppelin

Configureer Reverse Proxy

Standaard luistert de Zeppelin-server naar de localhostpoort 8080. In deze tutorial gebruiken we Nginx als een reverse proxy, zodat de applicatie toegankelijk is via standaard HTTPen HTTPSpoorten. We zullen ook Nginx configureren om SSL te gebruiken die is gegenereerd met Let's Encrypt gratis SSL CA.

Installeer Nginx.

sudo yum -y install nginx

Start Nginx en schakel het automatisch in tijdens het opstarten.

sudo systemctl start nginx
sudo systemctl enable nginx

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

sudo yum -y install certbot

Voordat u de certificaten kunt aanvragen, moet u poort 80en / 443of standaard HTTPen HTTPSservices toestaan via de firewall.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

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 /usr/share/nginx/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.pemen 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 afloopt, wordt het automatisch verlengd.

Maak een nieuw serverblokbestand voor de Zeppelin-site.

sudo nano /etc/nginx/conf.d/zeppelin.example.com.conf

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

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 je kunt de applicatie direct 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 falseom 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 adminen user1. Wijzig het wachtwoord van adminen user1en 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 .

Nadat u de wachtwoorden heeft gewijzigd, zou het codeblok er als volgt uit moeten zien.

[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 zou moeten zien dat de authenticatie is ingeschakeld en dat u zich kunt aanmelden 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.