Apache NiFi em contêiner com Docker Compose

Olá, se você está querendo criar um laboratório para lidar com dados em tempo real, uma opção é executar o Apache NiFi em contêineres. Ao fazer isso, você pode garantir que as dependências e configurações do host não afetem a capacidade do NiFi de processar fluxos de dados em tempo real. Além disso, a escalabilidade e flexibilidade proporcionadas pelos contêineres permitem que você ajuste facilmente a capacidade do NiFi de acordo com as necessidades de processamento dos seus fluxos de dados.

No entanto, é importante lembrar que a execução do NiFi em contêineres pode apresentar desafios. Para garantir que tudo funcione corretamente, é necessário planejar a implantação e configuração dos contêineres, garantindo que o NiFi seja dimensionado e configurado adequadamente para atender às necessidades de processamento. Com o planejamento e configurações corretas, você pode executar o Apache NiFi em contêineres com eficiência e eficácia.

Requisitos

  • Docker

  • Docker-compose

  • Git

  • Ubuntu

Arquivo 'docker-compose.yaml' para ativação do Apache Nifi

version: "3.3"

services: 
  apache-nifi:
    environment:
      - SINGLE_USER_CREDENTIALS_USERNAME=nifi
      - SINGLE_USER_CREDENTIALS_PASSWORD=HGd15bvfv8744ghbdhgdv7895agqERAo
      - TZ=America/Sao_Paulo
    image: apache/nifi:1.23.0
    container_name: apache-nifi
    ports:
      - "8443:8443"
    deploy:
      resources:
        limits:
          cpus: "0.95"
          memory: 4G
    restart: on-failure
    volumes: 
      - ./nifi/jdbc:/opt/nifi/nifi-current/jdbc
      - nifi-logs:/opt/nifi/nifi-current/logs
      - nifi-conf:/opt/nifi/nifi-current/conf
      - nifi-state:/opt/nifi/nifi-current/state
      - nifi-content:/opt/nifi/nifi-current/content_repository
      - nifi-database:/opt/nifi/nifi-current/database_repository
      - nifi-flowfile:/opt/nifi/nifi-current/flowfile_repository
      - nifi-provenance:/opt/nifi/nifi-current/provenance_repository
    networks:
      - nifi-network

volumes:
    nifi-logs:
    nifi-conf:
    nifi-state:
    nifi-content:
    nifi-database:
    nifi-flowfile:
    nifi-provenance:

networks:
  nifi-network:
    driver: bridge

Implantando o Serviço Apache Nifi

  • Clonando o repositório:
git clone https://github.com/Renatoelho/apache-nifi-container.git apache-nifi
  • Ativando o serviço:
cd apache-nifi
docker compose -p apache-nifi -f docker-compose.yaml up -d
  • Visualizando status do serviço:
docker ps --format "{{.ID}}\t{{.Names}}\t{{.Status}}"
  • Desativando o serviço:
docker compose -p apache-nifi -f docker-compose.yaml down

Para acessar o Apache Nifi depois que o serviço estiver ativo, acesse: https://localhost:8443/nifi/login e as credenciais de acesso são os valores existentes nas variáveis: SINGLE_USER_CREDENTIALS_USERNAME e SINGLE_USER_CREDENTIALS_PASSWORD.

Referências:

Apache/Nifi, Docker Hub. Disponível em: https://hub.docker.com/r/apache/nifi. Acesso em: 19 abr. 2023.

NiFi System Administrator’s Guide, Apache NiFi. Disponível em: https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html. Acesso em: 22 abr. 2023.