Como instalar o Apache Zeppelin no Ubuntu 16.04

O Apache Zeppelin é um notebook de código aberto baseado na Web e uma ferramenta colaborativa para ingestão, descoberta, análise e visualização de dados interativos. O Zeppelin suporta mais de 20 idiomas, incluindo Apache Spark, SQL, R, Elasticsearch e muitos mais. O Apache Zeppelin permite criar belos documentos orientados a dados e ver os resultados de suas análises.

Pré-requisitos

  • Uma instância do servidor Vultr Ubuntu 16.04.
  • Um usuário sudo .
  • Um nome de domínio apontado para o servidor.

Neste tutorial, usaremos zeppelin.example.com como o nome de domínio apontado para a instância do Vultr. Certifique-se de substituir todas as ocorrências do nome de domínio de exemplo pelo nome real.

Atualize seu sistema base usando o guia Como atualizar o Ubuntu 16.04 . Depois que seu sistema for atualizado, continue com a instalação do Java.

Instale Java

O Apache Zeppelin é escrito em Java, portanto, requer que o JDK funcione. Adicione o repositório Ubuntu para Oracle Java 8.

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

Instale o Oracle Java.

sudo apt -y install oracle-java8-installer

Verifique sua versão.

java -version

Você verá a seguinte saída.

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)

Defina o caminho padrão para o Java instalando o pacote a seguir.

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

Você pode verificar se JAVA_HOMEestá definido executando.

echo $JAVA_HOME

Você verá.

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

Se você não vir nenhuma saída, precisará sair do shell atual e efetuar login novamente.

Instale o Zeppelin

O Apache Zeppelin envia todas as dependências junto com os arquivos binários, portanto, não precisamos instalar nada além de Java. Faça o download do binário Zeppelin no seu sistema. Você sempre pode encontrar a versão mais recente do aplicativo na página de download do Zeppelin .

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

Extraia o arquivo morto.

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

O comando acima irá extrair o arquivo para /opt/zeppelin-0.7.3-bin-all. Renomeie o diretório por uma questão de conveniência.

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

O Apache Zeppelin está agora instalado. Você pode iniciar o aplicativo imediatamente, mas ele não estará acessível, pois ele ouve localhostapenas. Vamos configurar o Apache Zeppelin como um serviço. Também configuraremos o Nginx como um proxy reverso.

Configurar o Systemd

Nesta etapa, configuraremos um arquivo de unidade Systemd para o aplicativo Zeppelin. Isso garantirá que o processo do aplicativo seja iniciado automaticamente na reinicialização e falhas do sistema.

Por motivos de segurança, crie um usuário não privilegiado para executar o processo do Zeppelin.

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

Forneça a propriedade dos arquivos para o usuário Zeppelin recém-criado.

sudo chown -R zeppelin:zeppelin /opt/zeppelin

Crie um novo arquivo de unidade de serviço Systemd.

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

Preencha o arquivo com o seguinte.

[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

Inicie o aplicativo.

sudo systemctl start zeppelin

Ative o serviço Zeppelin para iniciar automaticamente no momento da inicialização.

sudo systemctl enable zeppelin

Para garantir que o serviço esteja em execução, você pode executar o seguinte.

sudo systemctl status zeppelin

Configurar Proxy Reverso

Por padrão, o servidor Zeppelin escuta localhost na porta 8080. Usaremos o Nginx como um proxy reverso para que o aplicativo possa ser acessado via padrão HTTP e HTTPS portas. Também configuraremos o Nginx para usar um SSL gerado com a autoridade de certificação SSL gratuita Let's Encrypt.

Instale o Nginx.

sudo apt -y install nginx

Inicie o Nginx e permita que ele inicie automaticamente no momento da inicialização.

sudo systemctl start nginx
sudo systemctl enable nginx

Adicione o repositório Certbot.

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

Instale o Certbot, que é o aplicativo cliente do Let's Encrypt CA.

sudo apt -y install certbot

Nota : Para obter certificados da Let's Encrypt CA, o domínio para o qual os certificados devem ser gerados deve estar apontado para o servidor. Caso contrário, faça as alterações necessárias nos registros DNS do domínio e aguarde a propagação do DNS antes de fazer a solicitação de certificado novamente. O Certbot verifica a autoridade do domínio antes de fornecer os certificados.

Gere os certificados SSL.

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

É provável que os certificados gerados sejam armazenados /etc/letsencrypt/live/zeppelin.example.com/. O certificado SSL será armazenado como fullchain.pem e a chave privada será armazenada como privkey.pem.

Os certificados Let's Encrypt expiram em 90 dias, portanto, é recomendável configurar a renovação automática dos certificados usando trabalhos Cron.

Abra o arquivo de tarefa cron.

sudo crontab -e

Adicione a seguinte linha no final do arquivo.

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

O trabalho cron acima será executado todos os dias às 05:30. Se o certificado estiver vencido, ele será renovado automaticamente.

Crie um novo arquivo de bloqueio de servidor para o site Zeppelin.

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

Preencher o arquivo.

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

Ative o arquivo de configuração.

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

Reinicie o Nginx para que as alterações tenham efeito.

sudo systemctl restart nginx zeppelin

O Zeppelin agora está acessível no seguinte endereço.

https://zeppelin.example.com

Por padrão, não há autenticação ativada, para que você possa usar o aplicativo diretamente.

Como o aplicativo é acessível a todos, os cadernos criados também são acessíveis a todos. É muito importante desabilitar o acesso anônimo e habilitar a autenticação para que apenas os usuários autenticados possam acessar o aplicativo.

Desativar acesso anônimo

Para desativar o acesso anônimo padrão, copie o modelo do arquivo de configuração em seu local ativo.

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

Edite o arquivo de configuração.

sudo nano conf/zeppelin-site.xml

Encontre as seguintes linhas no arquivo

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

Altere o valor para false desativar o acesso anônimo.

Ativar autenticação Shiro

Agora que desativamos o acesso anônimo, precisamos ativar algum tipo de mecanismo de autenticação para que usuários privilegiados possam efetuar login. O Apache Zeppelin usa a autenticação Apache Shiro. Copie o arquivo de configuração do Shiro.

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

Edite o arquivo de configuração.

sudo nano conf/shiro.ini

Encontre as seguintes linhas no arquivo

[users]

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

A lista contém o nome de usuário, senha e funções dos usuários. Por enquanto, usaremos apenas admin e user1. Alterar a senha de admin e user1 e desativar os outros usuários comentando eles. Você também pode alterar o nome de usuário e as funções dos usuários. Para saber mais sobre usuários e funções do Apache Shiro, leia o guia de autorização do Shiro .

Depois de alterar as senhas, o bloco de código deve ficar assim.

[users]

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

Agora reinicie o Zeppelin para aplicar as alterações.

sudo systemctl restart zeppelin

Você verá que a autenticação foi ativada e poderá efetuar login usando o nome de usuário e a senha definidos no arquivo de configuração do Shiro.



Leave a Comment

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.