Tabela de Conteúdos
Tutorial usando Apache Nifi
Nesse artigo vamos mostrar de uma maneira simples como criar um data flow para fazer integração de dados. O Apache Nifi é um projeto Open Source de integração de dados, que integra diversas origens com diversos tipos de destinos, usando bancos de dados, Hadoop (HDFS), Kafka, Spark, entre outros.
Conheça mais sobre o Apache Nifi na página do Projeto : https://nifi.apache.org/
Preparando Ambiente do Apache Nifi
Antes de começar a trabalhar com a ferramenta, vamos preparar o ambiente criando os diretórios no Linux (as pastas onde será gravado os arquivos de output do NiFi), para isso vamos executar os comandos a seguir:
mkdir –p /HDF/data (Criar a estrutura de diretórios)
chmod 777 –R /HDF/data (Da permissão para leitura e gravação nos diretórios)
Iniciando o Tutorial do Apache Nifi
1ºPasso: Com NiFi já instalado no cluster, basta selecionar o NiFi no menu da esquerda e clicar em Quick Links e depois NiFi UI (Você vai ser redirecionado para interface web do NiFi)
2ºPasso: Com a interface do NiFi aberta podemos come-çar a montar o DataFlow, neste DataFlow você vai coletar a saída de um app-log, dividir o conteúdo em múltiplos arqui- vos, compactar os arquivos e salvá-lo no diretório de destino com timestamp e nome do arquivo.
Adicionando e configurando Nifi Processor ‘TailFile’
1ºPasso: Clique no botão de processor ( ) arraste e solte ao centro da tela principal, irá abrir uma janela como segue abaixo:
2ºPasso: No campo de pesquisa busque pelo Processor “TailFile”, selecione o processor e clique em “ADD”.
3ºPasso: Clique com botão direito no Processor que foi criado e vá em configure (configurações):
4ºPasso: Vamos agendar esta execução em 10 segundos, na aba “Scheduling”.
5ºPasso: Na aba “properties” devemos passar o caminho dos arquivos de log que irá extrair, neste caso é: “/var/log/nifi/nifi-app.log”. Na opção “Rolling Filename Pattern” o nome padrão dos arquivos, aqui irei utilizar “nifi-app_*” e clicar em “Apply”. OBS.: Este atributo é opcional, atributos em negrito é obrigatório o preenchimento.
Adicionando e conectando ‘SplitText’ processor
1ºPasso: Com o “Tailfile” configurado, vamos arrastar mais um processor para o fluxo, clicando e arrastando com o botão ( ), mas agora utilizaremos outro processor: o “SplitText”.
2ºPasso: Configurando “SplitText”, selecione o pro-cessor “SplitText” clique com botão direito e escolha a opção de configure. Colocaremos ao atributo “Line Split Count” o valor de 15, para extrair número máximo de 15 linhas do arquivo.
3ºPasso: Na aba settings, as checkbox “Failure” e “Original” devem ser marcadas, e após realizar clicar em “Apply”.
4ºPasso: Para realizar a conexão, devemos colocar o cursor do mouse em cima do processor “TailFile” até apare- cer uma flecha verde, segurar e arrastar até o processor de “SplitText”. Verificar se checkbox “sucess” está marcada e clicar em “ADD”:
Adicionando e conectando “CompressContent” processor
1ºPasso: Clicar e arrastar utilizando o botão (), neste passo recorreremos ao processor “CompressContent”
2ºPasso: Clicando com botão direito no processor criado, segue em “Configure”, na aba properties. Mudaremos o atributo “Compression Format” para “gzip”:
3ºPasso: Na aba “Settings”, devemos marcar o checkbox “Failure”, podendo alterar o nome do processor (opcional). E clicar em “Apply”
4ºPasso: Vamos realizar a conexão da mesma forma que no tópico anterior, posicionando o cursor do mouse em cima do processor “SplitText”, segurar a setinha verde, arrastando e soltando – a no processor “CompressContent”, que irá abrir as propriedades de conexão. Marque a checkbox “splits” e “ADD”:
Adicionando e conectando o “UpdateAttribute” processor
1ºPasso: Clicar e arrastar utilizando o botão (
2º Passo: Clicar com botão o direito no processor criado, ir em configure, na aba Settings clicar no botão ( ) para adicionar um atributo novo, renomear para filename e clicar em “OK
3ºPasso: Os valores do atributo que iremos colocar é: “nifi-applog.${now():format(‘HH:mm:ss’)}.gz”, que irá anexar um prefixo ‘nifi-applog’ seguido de tempo no formato hora: minuto: segundo, com a extensão do arquivo em .gz (Nifi aceita linguagens de expressão):
4º Passo: Realize a conexão do processor “Compress Content” para “UpdateAttribute” (Similar aos passos anteriores), marque a checkbox “sucess” e clique em “ADD”:
Adicionando e conectando “PutFile” processor
1ºPasso: Clicar e arrastar utilizando o botão (
2º Passo: Clicando com botão direito na opção configure, na aba Properties, iremos configurar o atributo “Directory” (é o diretório onde os arquivos vão ser gravados):
3º Passo: Na aba Settings deve-se marcar o checkbox “Sucess” e “Failure”, para encerrar automaticamente os relacionamentos e clique em Apply:
Executando o DataFlow
Clique fora de todos os processor, (não pode ter nenhum processor selecionado), na aba operate, clicar em play e aguardar a execução de todo fluxo, e em seguida clicar em stop (ou quando quiser parar o fluxo):
E para verificar o se arquivo foi gravado, basta entrar no diretório que foi definido no atributo “PutFile” e listar com o comando do Linux “ls”.
Conheçam mais sobre essa poderosa ferramenta de integração, nos produtos Hortonworks ele é o software principal do HDF ( Hortonworks Data Flow ) – https://br.hortonworks.com/products/data-platforms/hdf/
Também conheça a página original dele no https://nifi.apache.org
Apostamos muito nele como uma plataforma de integração de dados, que podem ser de quaisquer formatos de origem como Bancos de Dados (SQL), arquivos ( txt, csv, xml, json ), filas ( Kafka, Rabbit, MQ ), leitura em file system hadoop (HDFS) e processamento dos dados e destinos para todos os citados anteriormente.
Com um ambiente visual, simplifica o desenvolvimento das rotinas, onde também é possível fazer teste e debug online, analisando os dados no nível mais granular, acessando registro a registro.
O Apache Nifi possui excelente mecanismos de Rastreabilidade de dados e Logs para todas as etapas do fluxo de dados, isso dá uma enorme capacidade de análise sobre o “Tracking” de todas as informações que passam por ele.
Conheça mais sobre nossos treinamentos em https://www.cetax.com.br/cursos-de-business-intelligence-bi/
Visite também nossa página de materiais : https://www.cetax.com.br/materiais-de-bi-para-download/