Comment installer Apache Zeppelin sur Ubuntu 16.04

Apache Zeppelin est un ordinateur portable open source basé sur le Web et un outil collaboratif pour l'ingestion, la découverte, l'analyse et la visualisation de données interactives. Zeppelin prend en charge plus de 20 langues, notamment Apache Spark, SQL, R, Elasticsearch et bien d'autres. Apache Zeppelin vous permet de créer de magnifiques documents axés sur les données et de voir les résultats de vos analyses.

Conditions préalables

  • Une instance de serveur Vultr Ubuntu 16.04.
  • Un utilisateur sudo .
  • Un nom de domaine pointé vers le serveur.

Pour ce didacticiel, nous utiliserons zeppelin.example.com le nom de domaine pointé vers l'instance Vultr. Veuillez vous assurer de remplacer toutes les occurrences de l'exemple de nom de domaine par celui réel.

Mettez à jour votre système de base à l'aide du guide Comment mettre à jour Ubuntu 16.04 . Une fois votre système mis à jour, installez Java.

Installer Java

Apache Zeppelin est écrit en Java, il nécessite donc JDK pour fonctionner. Ajoutez le référentiel Ubuntu pour Oracle Java 8.

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

Installez Oracle Java.

sudo apt -y install oracle-java8-installer

Vérifiez sa version.

java -version

Vous verrez la sortie suivante.

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)

Définissez le chemin par défaut pour Java en installant le package suivant.

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

Vous pouvez vérifier si JAVA_HOMEest défini en exécutant.

echo $JAVA_HOME

Tu verras.

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

Si vous ne voyez aucune sortie, vous devrez vous déconnecter du shell actuel et vous reconnecter.

Installer Zeppelin

Apache Zeppelin expédie toutes les dépendances avec les fichiers binaires, nous n'avons donc pas besoin d'installer autre chose que Java. Téléchargez le binaire Zeppelin sur votre système. Vous pouvez toujours trouver la dernière version de l'application sur la page de téléchargement de Zeppelin .

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

Extraire l'archive.

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

La commande ci-dessus extraira l'archive vers /opt/zeppelin-0.7.3-bin-all. Renommez le répertoire par souci de commodité.

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

Apache Zeppelin est maintenant installé. Vous pouvez démarrer immédiatement l'application, mais elle ne vous sera pas accessible, car elle n'écoute localhostque. Nous allons configurer Apache Zeppelin en tant que service. Nous allons également configurer Nginx comme proxy inverse.

Configurer Systemd

Dans cette étape, nous allons configurer un fichier d'unité Systemd pour l'application Zeppelin. Cela garantira que le processus de demande démarre automatiquement au redémarrage et aux échecs du système.

Pour des raisons de sécurité, créez un utilisateur non privilégié pour exécuter le processus Zeppelin.

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

Attribuez la propriété des fichiers à l'utilisateur Zeppelin nouvellement créé.

sudo chown -R zeppelin:zeppelin /opt/zeppelin

Créez un nouveau fichier d'unité de service Systemd.

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

Remplissez le fichier avec les éléments suivants.

[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

Démarrez l'application.

sudo systemctl start zeppelin

Activez le service Zeppelin pour qu'il démarre automatiquement au démarrage.

sudo systemctl enable zeppelin

Pour vous assurer que le service est en cours d'exécution, vous pouvez exécuter ce qui suit.

sudo systemctl status zeppelin

Configurer le proxy inverse

Par défaut, le serveur Zeppelin écoute sur localhost le port 8080. Nous utiliserons Nginx comme proxy inverse afin que l'application soit accessible via la norme HTTP et les HTTPS ports. Nous allons également configurer Nginx pour utiliser un SSL généré avec Let's Encrypt free SSL CA.

Installez Nginx.

sudo apt -y install nginx

Démarrez Nginx et activez-le pour démarrer automatiquement au démarrage.

sudo systemctl start nginx
sudo systemctl enable nginx

Ajoutez le référentiel Certbot.

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

Installez Certbot, qui est l'application cliente de Let's Encrypt CA.

sudo apt -y install certbot

Remarque : Pour obtenir des certificats de Let's Encrypt CA, le domaine pour lequel les certificats doivent être générés doit être dirigé vers le serveur. Sinon, apportez les modifications nécessaires aux enregistrements DNS du domaine et attendez que le DNS se propage avant de refaire la demande de certificat. Certbot vérifie l'autorité de domaine avant de fournir les certificats.

Générez les certificats SSL.

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

Les certificats générés sont susceptibles d'être stockés dans /etc/letsencrypt/live/zeppelin.example.com/. Le certificat SSL sera stocké sous fullchain.pem et la clé privée sera stockée sous privkey.pem.

Les certificats Let's Encrypt expirent dans 90 jours, il est donc recommandé de configurer le renouvellement automatique des certificats à l'aide des tâches Cron.

Ouvrez le fichier de tâche cron.

sudo crontab -e

Ajoutez la ligne suivante à la fin du fichier.

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

La tâche cron ci-dessus s'exécutera tous les jours à 5h30. Si le certificat doit expirer, il sera automatiquement renouvelé.

Créez un nouveau fichier de blocage de serveur pour le site Zeppelin.

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

Remplissez le fichier.

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

Activez le fichier de configuration.

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

Redémarrez Nginx pour que les modifications prennent effet.

sudo systemctl restart nginx zeppelin

Zeppelin est désormais accessible à l'adresse suivante.

https://zeppelin.example.com

Par défaut, aucune authentification n'est activée, vous pouvez donc utiliser l'application directement.

Étant donné que l'application est accessible à tous, les cahiers que vous créez sont également accessibles à tous. Il est très important de désactiver l'accès anonyme et d'activer l'authentification afin que seuls les utilisateurs authentifiés puissent accéder à l'application.

Désactiver l'accès anonyme

Pour désactiver l'accès anonyme par défaut, copiez le modèle de fichier de configuration dans son emplacement actif.

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

Modifiez le fichier de configuration.

sudo nano conf/zeppelin-site.xml

Recherchez les lignes suivantes dans le fichier.

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

Remplacez la valeur par false pour désactiver l'accès anonyme.

Activer l'authentification Shiro

Maintenant que nous avons désactivé l'accès anonyme, nous devons activer une sorte de mécanisme d'authentification afin que les utilisateurs privilégiés puissent se connecter. Apache Zeppelin utilise l'authentification Apache Shiro. Copiez le fichier de configuration Shiro.

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

Modifiez le fichier de configuration.

sudo nano conf/shiro.ini

Recherchez les lignes suivantes dans le fichier.

[users]

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

La liste contient le nom d'utilisateur, le mot de passe et les rôles des utilisateurs. Pour l'instant, nous n'utiliserons que admin et user1. Changer le mot de passe admin et user1 et désactiver les autres utilisateurs en les commentant. Vous pouvez également modifier le nom d'utilisateur et les rôles des utilisateurs. Pour en savoir plus sur les utilisateurs et les rôles d'Apache Shiro, lisez le guide d'autorisation Shiro .

Une fois que vous avez changé les mots de passe, le bloc de code devrait ressembler à ceci.

[users]

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

Redémarrez maintenant Zeppelin pour appliquer les modifications.

sudo systemctl restart zeppelin

Vous verrez que l'authentification a été activée et vous pourrez vous connecter en utilisant le nom d'utilisateur et le mot de passe définis dans le fichier de configuration Shiro.



Leave a Comment

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.