Conteúdo

Neste artigo, você vai aprender o processo de instalação e configuração do Apache NiFi em uma máquina com Linux Ubuntu. Vamos cobrir cada etapa necessária para transformar seu sistema Ubuntu em uma plataforma poderosa para a orquestração de fluxos de dados com o NiFi. Desde a atualização do sistema e instalação do Java até a configuração do NiFi como um serviço, você aprenderá as melhores práticas para garantir uma instalação suave e eficiente.

Ao final deste capítulo, você será capaz de:

  • Atualizar seu sistema Linux e preparar o ambiente para a instalação do NiFi.
  • Instalar o Java, uma dependência crítica para a execução do NiFi.
  • Baixar e descompactar o Apache NiFi, configurando-o em um diretório adequado.
  • Definir variáveis de ambiente e configurar o JAVA_HOME para garantir que o NiFi funcione corretamente.
  • Iniciar o NiFi e verificar seu status para confirmar a instalação bem-sucedida.
  • Configurar o Apache NiFi para iniciar como um serviço, proporcionando uma recuperação automática após reinicializações.
  • Habilitar o acesso à interface de usuário através de um DNS e configurar as credenciais de usuário iniciais.

Artigos Anteriores

Este artigo faz parte de uma série de artigos sobre arquitetura de integração com Apache NiFi. Se você ainda não leu os artigos anteriores, eu recomendo que você faça isso antes de continuar. Aqui estão os links dos artigos anteriores:

Curso de Arquitetura de Integração com Apache NiFi

Passo a Passo para a Instalação do Apache NiFi no Ubuntu

Atualizar o sistema

O primeiro passo é atualizar o sistema para garantir a compatibilidade e a segurança. Para isso, abra o terminal e execute os seguintes comandos:

sudo usermod -aG sudo <nome_do_usuario>
sudo apt update
sudo apt upgrade

O primeiro comando adiciona o usuário <nome_do_usuario> ao grupo sudo, que permite executar comandos como administrador. O segundo comando atualiza a lista de pacotes disponíveis. O terceiro comando atualiza os pacotes instalados para as versões mais recentes.

Instalar o Java

O segundo passo é instalar o Java, que é uma dependência crítica para a execução do NiFi. Para instalar o JDK 11, execute o seguinte comando:

sudo apt install default-jdk

Esse comando instala o JDK padrão do Ubuntu, que é o OpenJDK 11. Para verificar se a instalação foi bem sucedida, execute o seguinte comando:

java -version

Você deve ver uma saída semelhante a esta:

openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.18.04)
OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.18.04, mixed mode, sharing)

Baixar e Descompactar o Apache NiFi

O terceiro passo é baixar e descompactar o NiFi. Para isso, execute os seguintes comandos:

sudo apt install unzip
wget https://dlcdn.apache.org/nifi/1.24.0/nifi-1.24.0-bin.zip
unzip nifi-1.24.0-bin.zip

O primeiro comando instala a ferramenta unzip, que é necessária para descompactar o arquivo zip do NiFi. O segundo comando baixa o arquivo zip do NiFi da página oficial de downloads. O terceiro comando descompacta o arquivo zip, criando um diretório chamado nifi-1.24.0.

Mover e Configurar o Apache NiFi

O quarto passo é mover e configurar o NiFi. Para isso, execute os seguintes comandos:

sudo mv nifi-1.24.0 /opt/nifi
sudo chown -R $USER:$USER /opt/nifi
echo 'export PATH=$PATH:/opt/nifi/bin' >> ~/.bashrc
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/' >> ~/.bashrc
source ~/.bashrc

O primeiro comando move o diretório do NiFi para o diretório /opt, que é um local comum para instalar programas de terceiros. O segundo comando altera o dono e o grupo do diretório do NiFi para o usuário atual, permitindo que ele possa executar o NiFi sem problemas. O terceiro comando adiciona o diretório bin do NiFi ao PATH, que é uma variável de ambiente que armazena os caminhos dos programas executáveis. Isso permite que você possa executar o NiFi sem precisar digitar o caminho completo. O quarto comando define a variável JAVA_HOME, que é uma variável de ambiente que armazena o caminho do JDK. Isso permite que o NiFi encontre o Java corretamente. O quinto comando atualiza as variáveis de ambiente, aplicando as alterações feitas no arquivo ~/.bashrc.

Iniciar e Verificar o Apache NiFi

O quinto passo é iniciar e verificar o NiFi. Para isso, execute os seguintes comandos:

nifi.sh start
nifi.sh status

O primeiro comando inicia o NiFi, usando o script nifi.sh que está no diretório bin. O segundo comando verifica o status do NiFi, mostrando se ele está rodando ou não, e qual é o seu PID (Process ID).

Você deve ver uma saída semelhante a esta:

Java home: /usr/lib/jvm/java-11-openjdk-amd64
NiFi home: /opt/nifi

Bootstrap Config File: /opt/nifi/conf/bootstrap.conf

2021-11-16 09:10:01,123 INFO [main] org.apache.nifi.bootstrap.Command Apache NiFi is currently running, listening to Bootstrap on port 43337, PID=1234

Isso indica que o Apache NiFi está rodando, ouvindo na porta 43337, e tem o PID 1234.

Configurar o Apache NiFi como um Serviço

O sexto passo é configurar o Apache NiFi como um serviço. Isso permite que o NiFi inicie automaticamente com o sistema, e que possa ser gerenciado como um serviço do sistema. Para isso, execute o seguinte comando:

sudo /opt/nifi/bin/nifi.sh install

Esse comando cria um link simbólico do script nifi.sh para o diretório /etc/init.d, que é o diretório onde ficam os scripts dos serviços do sistema. Isso permite que você possa usar os comandos sudo service nifi startsudo service nifi stop, e sudo service nifi status para iniciar, parar e verificar o NiFi, respectivamente.

Habilitar o Acesso à Interface Web do Apache NiFi

O sétimo e último passo é habilitar o acesso à interface web do NiFi. A interface web é onde você pode criar e gerenciar seus fluxos de dados, usando uma interface gráfica e intuitiva. Por padrão, o NiFi vem habilitado em HTTPS, que é um protocolo seguro que usa criptografia para proteger as comunicações. Isso é recomendado para ambientes de produção, mas para ambientes de desenvolvimento ou testes, você pode usar o HTTP, que é um protocolo mais simples e rápido.

Para usar o HTTP, você precisa fazer algumas modificações no arquivo nifi.properties, que é o arquivo que armazena as configurações do NiFi. Para isso, execute o seguinte comando:

sudo vim /opt/nifi/conf/nifi.properties

Esse comando abre o arquivo nifi.properties no editor vim, que é um editor de texto popular no Linux. Você pode usar outro editor de sua preferência, se quiser.

No arquivo nifi.properties, você precisa remover o valor da propriedade nifi.web.https.host, que é o nome do host que o NiFi usa para o HTTPS. Você também precisa remover o valor da propriedade nifi.web.https.port, que é a porta que o NiFi usa para o HTTPS. Por padrão, esses valores são nifi01 e 8443, respectivamente.

Para remover os valores das propriedades, você pode usar o comando / para pesquisar pelo nome da propriedade, e depois usar a tecla x para apagar os caracteres. Por exemplo, para remover o valor da propriedade nifi.web.https.host, você pode digitar /nifi.web.https.host e pressionar Enter. Isso vai levar o cursor até a linha onde está a propriedade. Depois, você pode usar a tecla x para apagar o valor nifi01. Você deve repetir o mesmo processo para a propriedade nifi.web.https.port, apagando o valor 8443.

Depois de remover os valores das propriedades de HTTPS, você precisa definir os valores das propriedades de HTTP. Para isso, você precisa inserir os valores das propriedades nifi.web.http.host, nifi.web.http.port, e nifi.web.http.network.interface.default. Essas propriedades são as que definem o nome do host, a porta, e a interface de rede que o NiFi usa para o HTTP.

Para inserir os valores das propriedades, você pode usar o comando / para pesquisar pelo nome da propriedade, e depois usar a tecla i para entrar no modo de inserção. Por exemplo, para inserir o valor da propriedade nifi.web.http.host, você pode digitar /nifi.web.http.host e pressionar Enter. Isso vai levar o cursor até a linha onde está a propriedade. Depois, você pode usar a tecla i para entrar no modo de inserção, e digitar o valor que você quer. Você pode usar o valor localhost, que é o nome do host local, ou o endereço IP da sua máquina. Você deve repetir o mesmo processo para as propriedades nifi.web.http.port e nifi.web.http.network.interface.default, inserindo os valores que você quer. Você pode usar o valor 8080 para a porta, que é a porta padrão do HTTP.

O nifi.web.proxy.host é uma propriedade que permite definir uma lista de valores válidos para o cabeçalho HTTP Host, que é usado para identificar o servidor que está recebendo a requisição. Essa propriedade é importante quando o NiFi está rodando de forma segura (HTTPS) e vai receber requisições de um host diferente [:porta]. Por exemplo, quando o NiFi está rodando em um container Docker ou atrás de um proxy. Nesse caso, o nifi.web.proxy.host deve conter o nome do host ou o endereço IP que será usado para acessar o NiFi pela internet, seguido da porta que o NiFi usa para o HTTPS. Isso permite que o NiFi reconheça as requisições que vêm do proxy e as trate de forma adequada. Por padrão, essa propriedade está em branco, o que significa que o NiFi só aceita requisições enviadas para o host [:porta] que o NiFi está vinculado.

Um exemplo de valor para o nifi.web.proxy.host é:

nifi.web.proxy.host=127.0.0.1,
localhost,
nifi01,
nifi01-sec-tt.eastus2.cloudapp.azure.com,
nifi01.internal.cloudapp.net,
nifi01-sec-tt.eastus2.cloudapp.azure.com:8443,
nifi01.internal.cloudapp.net:8443

Esse valor indica que o NiFi aceita requisições que tenham como host 127.0.0.1, localhost, nifi01, nifi01-sec-tt.eastus2.cloudapp.azure.com, nifi01.internal.cloudapp.net, ou qualquer um desses nomes seguidos da porta 8443. Esses nomes podem representar o host local, o DNS atribuído à máquina, ou o endereço interno da rede, dependendo de como o NiFi está configurado e de como ele é acessado. Essa lista pode ser alterada de acordo com as necessidades e preferências do usuário.

Depois de inserir os valores das propriedades de HTTP, você precisa salvar e sair do arquivo nifi.properties. Para isso, você pode usar o comando :wq e pressionar Enter. Isso vai gravar as alterações no arquivo e sair do editor vim.

Agora, você precisa reiniciar o NiFi para aplicar as novas configurações. Para isso, execute os seguintes comandos:

nifi.sh stop
nifi.sh start

O primeiro comando para o NiFi, usando o script nifi.sh. O segundo comando inicia o NiFi novamente, usando o script nifi.sh.

Agora, você pode acessar a interface web do NiFi no navegador, usando o endereço http://localhost:8080/nifi. Você deve ver uma tela com o painel do NiFi, onde você pode criar e gerenciar seus fluxos de dados. Se você não conseguir acessar essa tela, pode haver algum problema com a configuração do NiFi ou do seu sistema.

Tiago Tartari

Tiago Tartari

Eu ajudo e capacito pessoas e organizações a transformar problemas complexos em soluções práticas usando a tecnologia para atingir resultados extraordinários.

Histórias de sucesso

EximiaCo