Como instalar o Apache Zeppelin no CentOS 7

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 CentOS 7.
  • Um usuário sudo .
  • Um nome de domínio apontado para o servidor.

Neste tutorial, usaremos zeppelin.example.comcomo 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 básico usando o guia Como atualizar o CentOS 7 . 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. Faça o download do pacote 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"

Instale o pacote baixado.

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

Se o Java foi instalado com sucesso, você deve poder verificar sua versão.

java -version

Você verá a seguinte saída.

[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 prosseguirmos, precisaremos configurar as variáveis ​​de ambiente JAVA_HOMEe JRE_HOME. Encontre o caminho absoluto do executável JAVA no seu sistema.

readlink -f $(which java)

Você verá uma saída semelhante.

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

Agora, configure as variáveis ​​de ambiente JAVA_HOMEe de JRE_HOMEacordo com o caminho do diretório 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

Execute o bash_profilearquivo

source ~/.bash_profile

Agora você pode executar o echo $JAVA_HOMEcomando para verificar se a variável de ambiente está configurada.

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

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 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 servidor da web Nginx como um proxy reverso.

Configurar o serviç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 adduser -d /opt/zeppelin -s /sbin/nologin 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 verificar se o serviço está sendo executado, você pode executar o seguinte.

sudo systemctl status zeppelin

Configurar Proxy Reverso

Por padrão, o servidor Zeppelin escuta localhostna porta 8080. Neste tutorial, usaremos o Nginx como um proxy reverso para que o aplicativo possa ser acessado via padrão HTTPe HTTPSportas. Também configuraremos o Nginx para usar SSL gerado com a CA SSL gratuita Let's Encrypt.

Instale o Nginx.

sudo yum -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

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

sudo yum -y install certbot

Antes de solicitar os certificados, você precisará permitir porta 80e / 443ou serviços HTTPe padrão HTTPSatravés do 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 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 /usr/share/nginx/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.peme 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 prazo de validade do certificado for vencido, ele será renovado automaticamente.

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

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

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

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 falsedesativar 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 admine user1. Alterar a senha de admine user1e 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ê deve ver que a autenticação foi ativada e poderá fazer 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.