Há alguns meses foi anunciado a fusão entre a Cloudera e a Hortonworks. A parte interessante, é que a Cloudera anunciou o CFM: Cloudera Flow Management. Com isso, agora temos como rodar o NiFi diretamente dentro do nosso cluster Cloudera. Não que isso não fosse possível antes, mas agora a própria Cloudera distribui os parcels do CFM. E é disso que vamos falar.
Parcel é uma estratégia mais eficiente utilizada pelo Cloudera Manager (pelo menos na minha opinião) de distribuir e instalar binários. Diferente dos pacotes tradicionais, ele contém todos os arquivos necessários para o funcionamento de um software e não utiliza as pastas normalmente utilizadas, como /usr. Tudo fica dentro da /opt/cloudera/parcels.
O principal benefício é que você pode ter no mesmo host duas versões do mesmo software rodando lado a lado, tornando upgrades consideravelmente mais fácil.
O Cloudera Flow Management faz parte do componente Cloudera DataFlow, anunciado recentemente. Ele possui dois elementos principais: Apache NiFi e o NiFi Registry. A melhor parte: ele é distribuído como Parcel, então é extremamente fácil de adicioná-lo em um cluster em execução. Aqui estou assumindo duas coisas: já temos JDK instalado e o serviço no Zookeeper rodando.
Agora temos duas tarefas a fazer:
1 – fazer download do “Custom Service Descriptor”. O CSD é um arquivo que contém informações necessárias para descrever e gerenciar os serviços customizados.
2 – adicionar o CFM Parcel, apontando a URL em que devemos fazer seu download.
Vá até seu node que roda o Cloudera Manager, navegue até a pasta /opt/cloudera/csd. Nesta pasta faremos o download o jar que contém as instruções necessárias para gestão do NiFi. O arquivo está em https://archive.cloudera.com/CFM/csd/1.0.0.0/NIFI-1.9.0.1.0.0.0-90.jar. Após o download, faremos uma alteração nas suas permissões, no owner do arquivo e reiniciaremos o serviço do Cloudera Server. Você precisará se logar novamente no Cloudera Manager e será necessário restart do Cloudera Management Service.
[root@ ~]# cd /opt/cloudera/csd/
[root@ csd]# wget https://archive.cloudera.com/CFM/csd/1.0.0.0/NIFI-1.9.0.1.0.0.0-90.jar --2019-06-08 14:36:21-- https://archive.cloudera.com/CFM/csd/1.0.0.0/NIFI-1.9.0.1.0.0.0-90.jar Resolving archive.cloudera.com (archive.cloudera.com)... 151.101.248.167 Connecting to archive.cloudera.com (archive.cloudera.com)|151.101.248.167|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 29897 (29K) [application/java-archive] Saving to: ‘NIFI-1.9.0.1.0.0.0-90.jar’ 100%[=============================================================>] 29,897 --.-K/s in 0.001s 2019-06-08 14:36:21 (48.8 MB/s) - ‘NIFI-1.9.0.1.0.0.0-90.jar’ saved [29897/29897]
[root@ csd]# chown cloudera-scm:cloudera-scm NIFI*.jar [root@ csd]# chmod 644 NIFI*.jar [root@ csd]# service cloudera-scm-server restart Redirecting to /bin/systemctl restart cloudera-scm-server.service
No seu cluster, é possível ver a configuração relativa aos Parcels em: Hosts > Parcels
Serão exibidos os Parcels já configurados.
No botão “Configuration”, é possível fazer a gestão dos Parcels instalados. Clique nele.
Agora, vamos focar em Remote Parcel Repository URLs. É possível ver a lista das URLs e um botão + e um -, para adicionar ou removê-los. Adicione um.
Utilize a seguinte URL para o CFM: https://archive.cloudera.com/CFM/parcels/1.0.0.0 e salve as configurações. Os próximos passos são bem intuitivos. Começamos com o Download.
Em seguida, vamos distribuir o Parcel para todos os nodes.
Finalizando, só ativar o novo Parcel e confirmar que ele está distribuído e ativado.
Agora que temos o Parcel ativo e o CSD no local correto, vamos adicionar o NiFi no nosso cluster. Ao lado do nome do seu Cluster, uma seta mostra algumas opções. Escolha adicionar serviços.
Serão listados todos os serviços disponíveis, incluindo o NiFi. Escolha-o e siga para o próximo passo.
Será necessário indicar os hosts onde você deseja que rode o serviço. Selecione-os e siga em frente.
Você poderá ver os logs da primeira execução .
Finalizado a instalação, você verá que agora na sua lista de serviços, temos o NiFi.
Tudo pronto. Vamos acessá-lo para ver se está tudo em ordem. Basta selecionar algum dos hosts que você escolheu, na porta 8080. Se tiver usando AWS como eu, agora você precisa informar o IP público ou fazer um tunel SSH e acessar com o IP privado.
Fizemos o passo a passo de como adicionar o NiFi em um cluster Cloudera. Espero que tenham gostado. Há outros posts relacionados a instalação do NiFi sem utilizar o Cloudera, você pode consultá-los aqui.
Fiquem à vontade para entrar em contato caso encontrem algum problema. Sua dúvida pode ajudar mais gente.
Até a próxima.