Cómo instalar Apache Zeppelin en CentOS 7

Apache Zeppelin es un cuaderno de código abierto basado en la web y una herramienta de colaboración para la ingestión, descubrimiento, análisis y visualización interactivos de datos. Zeppelin admite más de 20 idiomas, incluidos Apache Spark, SQL, R, Elasticsearch y muchos más. Apache Zeppelin le permite crear hermosos documentos basados ​​en datos y ver los resultados de sus análisis.

Prerrequisitos

  • Una instancia de servidor Vultr CentOS 7.
  • Un usuario de sudo .
  • Un nombre de dominio apuntado hacia el servidor.

Para este tutorial, usaremos zeppelin.example.comcomo el nombre de dominio que apunta hacia la instancia de Vultr. Asegúrese de reemplazar todas las apariciones del nombre de dominio de ejemplo con el nombre real.

Actualice su sistema base utilizando la guía Cómo actualizar CentOS 7 . Una vez que su sistema ha sido actualizado, proceda a instalar Java.

Instalar Java

Apache Zeppelin está escrito en Java, por lo que requiere JDK para funcionar. Descargue el paquete 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"

Instala el paquete descargado.

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

Si Java se ha instalado correctamente, entonces debería poder verificar su versión.

java -version

Verá el siguiente resultado.

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

Antes de que podamos seguir adelante, tendremos que configurar los JAVA_HOMEy las JRE_HOMEvariables de entorno. Encuentre la ruta absoluta del ejecutable JAVA en su sistema.

readlink -f $(which java)

Verá una salida similar.

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

Ahora, configure las variables de entorno JAVA_HOMEy de JRE_HOMEacuerdo con la ruta del directorio 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

Ejecuta el bash_profilearchivo.

source ~/.bash_profile

Ahora puede ejecutar el echo $JAVA_HOMEcomando para verificar si la variable de entorno está configurada.

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

Instalar Zeppelin

Apache Zeppelin incluye todas las dependencias junto con los archivos binarios, por lo que no necesitamos instalar nada más que Java. Descargue el binario Zeppelin en su sistema. Siempre puede encontrar la última versión de la aplicación en la página de descarga de Zeppelin .

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

Extraer el archivo.

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

El comando anterior extraerá el archivo a /opt/zeppelin-0.7.3-bin-all. Cambie el nombre del directorio por conveniencia.

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

Apache Zeppelin ya está instalado. Puede iniciar inmediatamente la aplicación, pero no será accesible para usted, ya que localhostsolo escucha . Configuraremos Apache Zeppelin como un servicio. También configuraremos el servidor web Nginx como un proxy inverso.

Configurar el servicio Systemd

En este paso, configuraremos un archivo de unidad Systemd para la aplicación Zeppelin. Esto asegurará que el proceso de la aplicación se inicie automáticamente al reiniciar el sistema y las fallas.

Por razones de seguridad, cree un usuario sin privilegios para ejecutar el proceso Zeppelin.

sudo adduser -d /opt/zeppelin -s /sbin/nologin zeppelin

Proporcione la propiedad de los archivos al usuario Zeppelin recién creado.

sudo chown -R zeppelin:zeppelin /opt/zeppelin

Cree un nuevo archivo de unidad de servicio Systemd.

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

Rellene el archivo con lo siguiente.

[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

Inicia la aplicación.

sudo systemctl start zeppelin

Habilite el servicio Zeppelin para iniciarse automáticamente en el momento del arranque

sudo systemctl enable zeppelin

Para verificar si el servicio se está ejecutando, puede ejecutar lo siguiente.

sudo systemctl status zeppelin

Configurar proxy inverso

Por defecto, el servidor Zeppelin escucha en localhostel puerto 8080. En este tutorial, utilizaremos Nginx como proxy inverso para que se pueda acceder a la aplicación a través de puertos HTTPy estándar HTTPS. También configuraremos Nginx para usar SSL generado con Let's Encrypt free SSL CA.

Instala Nginx.

sudo yum -y install nginx

Inicie Nginx y permita que se inicie automáticamente en el momento del arranque.

sudo systemctl start nginx
sudo systemctl enable nginx

Instale Certbot, que es la aplicación cliente para Let's Encrypt CA.

sudo yum -y install certbot

Antes de que pueda solicitar los certificados, deberá permitir el puerto 80y / 443o estándar HTTPy HTTPSservicios a través del firewall.

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

Nota : Para obtener certificados de Let's Encrypt CA, el dominio para el que se generarán los certificados debe apuntar hacia el servidor. De lo contrario, realice los cambios necesarios en los registros DNS del dominio y espere a que se propague el DNS antes de volver a solicitar el certificado. Certbot verifica la autoridad del dominio antes de proporcionar los certificados.

Generar los certificados SSL.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d zeppelin.example.com

Es probable que los certificados generados se almacenen en /etc/letsencrypt/live/zeppelin.example.com/. El certificado SSL se almacenará como fullchain.pemy la clave privada se almacenará como privkey.pem.

Encriptemos los certificados caducan en 90 días, por lo tanto, se recomienda configurar la renovación automática de los certificados utilizando trabajos Cron.

Abra el archivo de trabajo cron.

sudo crontab -e

Agregue la siguiente línea al final del archivo.

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

El trabajo cron anterior se ejecutará todos los días a las 5:30 a.m. Si el certificado vence, los renovará automáticamente.

Cree un nuevo archivo de bloqueo del servidor para el sitio Zeppelin.

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

Rellene el archivo.

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

Reinicie Nginx para que los cambios surtan efecto.

sudo systemctl restart nginx zeppelin

Ahora se puede acceder a Zeppelin en la siguiente dirección.

https://zeppelin.example.com

De forma predeterminada, no hay autenticación habilitada, por lo que puede usar la aplicación directamente.

Dado que la aplicación es accesible para todos, los cuadernos que cree también son accesibles para todos. Es muy importante deshabilitar el acceso anónimo y habilitar la autenticación para que solo los usuarios autenticados puedan acceder a la aplicación.

Deshabilitar acceso anónimo

Para deshabilitar el acceso anónimo predeterminado, copie la plantilla del archivo de configuración en su ubicación en vivo.

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

Edite el archivo de configuración.

sudo nano conf/zeppelin-site.xml

Encuentra las siguientes líneas en el archivo.

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

Cambie el valor a falsepara deshabilitar el acceso anónimo.

Habilitar la autenticación de Shiro

Ahora que hemos deshabilitado el acceso anónimo, necesitamos habilitar algún tipo de mecanismo de autenticación para que los usuarios privilegiados puedan iniciar sesión. Apache Zeppelin usa la autenticación Apache Shiro. Copie el archivo de configuración de Shiro.

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

Edite el archivo de configuración.

sudo nano conf/shiro.ini

Encuentra las siguientes líneas en el archivo.

[users]

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

La lista contiene el nombre de usuario, la contraseña y los roles de los usuarios. Por ahora, solo usaremos adminy user1. Cambie la contraseña de adminy user1deshabilite a los otros usuarios al comentarlos. También puede cambiar el nombre de usuario y las funciones de los usuarios. Para obtener más información sobre los usuarios y roles de Apache Shiro, lea la guía de autorización de Shiro .

Una vez que haya cambiado las contraseñas, el bloque de código debería verse así.

[users]

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

Ahora reinicie Zeppelin para aplicar los cambios.

sudo systemctl restart zeppelin

Debería ver que la autenticación se ha habilitado y podrá iniciar sesión con el nombre de usuario y la contraseña establecidos en el archivo de configuración de Shiro.



Leave a Comment

How to Install Alfresco Community Edition on Ubuntu 16.04

How to Install Alfresco Community Edition on Ubuntu 16.04

Using a Different System? Alfresco Community Edition is an open source version of the Alfresco Content Services. It is written in Java and uses PostgreSQL t

Cómo instalar osTicket en FreeBSD 12

Cómo instalar osTicket en FreeBSD 12

¿Usando un sistema diferente? osTicket es un sistema de tickets de soporte al cliente de código abierto. El código fuente de osTicket está alojado públicamente en Github. En este tutorial

Cómo instalar osTicket en Fedora 30

Cómo instalar osTicket en Fedora 30

¿Usando un sistema diferente? osTicket es un sistema de tickets de soporte al cliente de código abierto. El código fuente de osTicket está alojado públicamente en Github. En este tutorial

How to Install Matomo Analytics on Debian 9

How to Install Matomo Analytics on Debian 9

Using a Different System? Matomo (formerly Piwik) is an open source analytics platform, an open alternative to Google Analytics. Matomo source is hosted o

How to Install Osclass on FreeBSD 12

How to Install Osclass on FreeBSD 12

Using a Different System? Osclass is an open source project that allows you to easily create a classified site without any technical knowledge. Its sourc

How to Install Matomo Analytics on Ubuntu 16.04

How to Install Matomo Analytics on Ubuntu 16.04

Using a Different System? Matomo (formerly Piwik) is an open source analytics platform, an open alternative to Google Analytics. Matomo source is hosted o

Cómo instalar X-Cart 5 en Ubuntu 18.04 LTS

Cómo instalar X-Cart 5 en Ubuntu 18.04 LTS

¿Usando un sistema diferente? X-Cart es una plataforma de comercio electrónico de código abierto extremadamente flexible con toneladas de características e integraciones. El código fuente de X-Cart es hoste

Installing Microweber on Ubuntu 16.04

Installing Microweber on Ubuntu 16.04

Using a Different System? Microweber is an open source drag and drop CMS and online shop. Microweber source code is hosted on GitHub. This guide will show yo

How to Install Mailtrain Newsletter Application on Ubuntu 16.04

How to Install Mailtrain Newsletter Application on Ubuntu 16.04

Using a Different System? Mailtrain is an open-source self hosted newsletter app built on Node.js and MySQL/MariaDB. Mailtrains source is on GitHub. Thi

How to Install Matomo Analytics on FreeBSD 11

How to Install Matomo Analytics on FreeBSD 11

Using a Different System? Matomo (formerly Piwik) is an open source analytics platform, an open alternative to Google Analytics. Matomo source is hosted o

How to Install Mailtrain Newsletter Application on CentOS 7

How to Install Mailtrain Newsletter Application on CentOS 7

Using a Different System? Mailtrain is an open-source self hosted newsletter app built on Node.js and MySQL/MariaDB. Mailtrains source is on GitHub. Thi

How to Install Mailtrain Newsletter Application on Debian 9

How to Install Mailtrain Newsletter Application on Debian 9

Using a Different System? Mailtrain is an open-source self hosted newsletter app built on Node.js and MySQL/MariaDB. Mailtrains source is on GitHub. Thi

Cómo instalar Taiga Project Management Tool en Ubuntu 16.04

Cómo instalar Taiga Project Management Tool en Ubuntu 16.04

¿Usando un sistema diferente? Taiga es una aplicación gratuita y de código abierto para la gestión de proyectos. A diferencia de otras herramientas de gestión de proyectos, Taiga utiliza un incre

How to Install osTicket on Ubuntu 18.04 LTS

How to Install osTicket on Ubuntu 18.04 LTS

Using a Different System? osTicket is an open-source customer support ticketing system. osTicket source code is publicly hosted on Github. In this tutorial

Cómo instalar Alfresco Community Edition en CentOS 7

Cómo instalar Alfresco Community Edition en CentOS 7

¿Usando un sistema diferente? Alfresco Community Edition es una versión de código abierto de Alfresco Content Services. Está escrito en Java y usa PostgreSQL t

Installing Akaunting on FreeBSD 12

Installing Akaunting on FreeBSD 12

Using a Different System? Introduction Akaunting is a free, open source and online accounting software designed for small businesses and freelancers. It i

Cómo instalar Zammad 2.0 en Ubuntu 16.04 LTS

Cómo instalar Zammad 2.0 en Ubuntu 16.04 LTS

¿Usando un sistema diferente? Zammad es un sistema de asistencia / tickets de código abierto diseñado para equipos de atención al cliente. Con Zammad, servicio al cliente

Installing Akaunting on Ubuntu 16.04

Installing Akaunting on Ubuntu 16.04

Using a Different System? Akaunting is a free, open source and online accounting software designed for small businesses and freelancers. It is built wit

How to Install InvoicePlane on FreeBSD 12

How to Install InvoicePlane on FreeBSD 12

Using a Different System? InvoicePlane is a free and open source invoicing application. Its source code can be found on this Github repository. This guid

How to Install Matomo Analytics on Fedora 28

How to Install Matomo Analytics on Fedora 28

Using a Different System? Matomo (formerly Piwik) is an open source analytics platform, an open alternative to Google Analytics. Matomo source is hosted o

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.