Dataflow | How to Install and configure NIFI

Que es y para que ?

Nifi es una herramienta web que podemos utilizar para realizar la ingesta de datos.

Nos permite escuchar, formatear y hacer un primer filtro de los mensajes (datos) recibidos mediante varios de sus procesadores embebidos.

Asi mismo procesar y distribuir datos.

Descarga de Packages y chequeos

Descargamos los packages desde :

https://nifi.apache.org/

Alli enconraremos diferenetes versiones de producto.

Luego procedemos a realizar un CHECKSUM para poder verificar que es un package seguro y que no sufrio alteraciones en el camino.

[amercado.nbfor101200] ➤ md5sum nifi-1.4.0-bin.tar.gz
28c5511073452cf59e9ec1b278a1a7e4 nifi-1.4.0-bin.tar.gz

Instalacion

Descomprimimos el package en el path que seleccionamos para nuestra instalacion, en mi caso particular yo defini el /opt para realizar la instalacion de todos mis paquetes BD.

cd /opt
tar -xvzf nifi-1.4.0-bin.tar.gz

En el caso que expongo, el usuario dueño de mi infra de BigData es el usuario hadoop, entonces asignare los permisos necesario, pero ustedes pueden elegir el que tengan disponible o crear un usuario llamado nifi.

cd /opt
tar -xvzf
chown -R hadoop. /opt/nifi-1.4.0/

Como recomendacion, les propongo crearse un symbolic Link para poder tener un nombre sencillo donde buscar los datos o integrar las Environment variables y que apunte a la version especifica que tenemos.

ln -s  /opt/nifi-1.4.0/ /opt/nifi

Configuremos NIFI
Para poder comenzar con el startup de la aplicacion, debemos revisar en el siguiente archivo de configuracion:

vi /opt/nifi/conf/nifi.properties
  • Aqui podriamos cambiar por ejemplo el port default, que en el 8080.
  • Configuraciones relacionadas a la configuracion en modo Cluster, kerberos y a zookeper.

Prerequisitos NIFI

  • Tener Java Instalado
  • Tener Seteado en el archivo .bash_profile las variables de entorno de java.

Iniciando el Servicio

Para poder iniciar el servicio de NIFI podemos hacerlo de forma manual o como un servicio, exploremos las dos opciones.

Inicio del Servicio de Forma Manual

 /opt/nifi/nifi.sh start
 /opt/nifi/nifi.sh status
 /opt/nifi/nifi.sh stop

Inicio del Servicio, como un Linux Service

Debemos comenzar con la instalacion como un servicio:

Comencemos por ir al home de NIFI, donde se encuentran los binarios

cd /opt/nifi/
bin/nifi.sh install

Recordemos, que podemos colocar el nombre del servicio con el que indentificaremos a nuestro NIFI, al ser un dataflow, podriamos identificarlo bajo ese nombre, o con el nombre que creamos conveniente como adminisradores.

cd /opt/nifi/
bin/nifi.sh install dataflow

En el caso de que no elijamos ningun nombre, recordemos que usara el nombre default del servicio, identificado como nifi.

Ya configurado, subimos los servicios con los comandos clasicos para ello:

service start nifi
service status nifi
service stop nifi

Veamos un ejemplo

# service start nifi
# service status nifi
● nifi.service - Apache NiFi
   Loaded: loaded (/etc/systemd/system/nifi.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-11-23 15:33:50 -03; 52s ago
  Process: 26296 ExecStart=/opt/nifi/bin/nifi.sh start (code=exited, status=0/SUCCESS)
 Main PID: 26314 (nifi.sh)
    Tasks: 91
   Memory: 1.8G
      CPU: 1min 12.788s
   CGroup: /system.slice/nifi.service
           ├─26314 /bin/sh /opt/nifi/bin/nifi.sh start
           ├─26316 /usr/bin/java -cp /opt/nifi/conf:/opt/nifi/lib/bootstrap/* -Xms12m -Xmx24m -Dorg.apache.nifi.bootstrap.config.log.dir=/opt/nifi/logs -Dorg.apache.nifi.bootstrap.config
           └─26333 java -classpath /opt/nifi/./conf:/opt/nifi/./lib/logback-core-1.2.3.jar:/opt/nifi/./lib/nifi-properties-1.4.0.jar:/opt/nifi/./lib/nifi-framework-api-1.4.0.jar:/opt/nif

Nov 23 15:33:47 srvhadoopt1 systemd[1]: Starting Apache NiFi...
Nov 23 15:33:47 srvhadoopt1 nifi.sh[26296]: /opt/nifi/bin/nifi.sh: 88: /opt/nifi/bin/nifi.sh: source: not found
Nov 23 15:33:47 srvhadoopt1 nifi.sh[26296]: nifi.sh: JAVA_HOME not set; results may vary
Nov 23 15:33:47 srvhadoopt1 nifi.sh[26296]: Java home:
Nov 23 15:33:47 srvhadoopt1 nifi.sh[26296]: NiFi home: /opt/nifi
Nov 23 15:33:47 srvhadoopt1 nifi.sh[26296]: Bootstrap Config File: /opt/nifi/conf/bootstrap.conf
Nov 23 15:33:50 srvhadoopt1 systemd[1]: Started Apache NiFi.
#

Navegamos la url en un browser

http://srvhadoopt1:8080/nifi/

Acerca de Juan Andres Mercado

Big Data Enthusiast, DBA & Exadata Manager | Consultant | Father | Musician | Farmer | Environmentalist Argentina | juanmercadoit.com
Esta entrada fue publicada en BI, Big Data y etiquetada , , , , , , , . Guarda el enlace permanente.