Apache Nifi

por | Jun 27, 2018 | Big data, Hadoop | 4 Comentarios

Definición de Nifi

Apnifi logoache NiFi es una plataforma integrada de procesamiento y logística de datos en tiempo real, para automatizar el movimiento de datos entre diferentes sistemas de forma rápida, fácil y segura.

Apache Hifi es una herramienta ETL que se encarga de cargar datos de diferentes fuentes, los pasa por un flujo de procesos para su tratamiento, y los vuelca en otra fuente.

Se caracteriza por tener una interface web, muy potente e intuitiva que permite diseñar y configurar de forma visual el flujo de datos así como operar sobre el proceso (arranque y parada) y monitorizar el estado en búsqueda de posibles errores que se vayan produciendo.

Apache NiFi se basa en «Niagara Files». Fue desarrollado y liberado por la NSA que lo utiliza desde 2010.

Ejemplo de aplicacion nifi1

Ejemplo de aplicacion nifi

 

Características

  • Ingesta de información no afectar al rendimiento del servicio de la fuente origen ni destino.
  • Carga y grabado de datos con una amplia variedad de tecnologías: HDFS, ElasticSearch, FTP, bases de datos SQL, MongoDB,…
  • Transformación entre numerosos formatos de datos como: JSON, XML, Avro, CSV,…
  • Permite la delegación de funcionalidades a otros sistemas de procesamiento, como:
    • Apache Karfa: comunicación bidireccional con un tercero, mediante la utilización de colas.
    • Apache Flume: ejecución transparente de procesos.
  • Ejecución en paralelo mediante Apache ZooKeeper, que permite correr múltiples instancias de Nifi (o MiNifi proyecto derivado que  proporciona un run-time con bajos requerimientos
  • Independencia de las fuentes de datos, ya que admite fuentes dispersas y distribuidas de diferentes formatos, esquemas, protocolos, velocidades y tamaños, máquinas, ubicaciones geográfica, …
  • Proporciona una interfaz gráfica que facilita enormemente el tratamiento.
  • Permite el rastreo de datos en tiempo real.
  • Flexibilidad para ajustarse dinámicamente a una conectividad de red fluctuante que podría afectar las comunicaciones.

 

Arquitectura

architecture nifi

architecture nifi

Web Server: el propósito del servidor web es alojar HTTP-based y control del API.

Flow Controller: el controlador de flujo es el cerebro de la operación. Proporciona hilos para que las extensiones se ejecuten y gestiona la planificación de cuándo recibirán recursos para ejecutar.

Extensions: Existen varios tipos de extensiones pero todas las extensiones operan / ejecutan dentro de la Máquina Virtual de Java.

FlowFile Repository: el repositorio de flujo de fichero realiza un seguimiento del estado de lo que sabe sobre un fichero de flujo que está actualmente activo en el flujo. La implementación del repositorio es conectable. El enfoque predeterminado es un registro de escritura anticipada persistente que vive en una partición de disco especificada.

Content Repository: el repositorio de contenidos es donde se encuentran los bytes de contenido reales de un FlowFile determinado. La implementación del repositorio es conectable. El enfoque predeterminado es un mecanismo bastante simple, que almacena bloques de datos en el sistema de archivos. Se puede especificar más de una ubicación de almacenamiento del sistema de archivos para particiones físicas diferentes a fin de reducir a un solo volumen.

Provenance Repository:  el repositorio de proveniencias es donde se almacenan todos los datos de eventos de procedencia. La construcción del repositorio es conectable con la implementación predeterminada que incluye uno o más volúmenes de discos físicos. Dentro de cada ubicación, los datos de los eventos se indexan para poder buscarlos.

 

Fuente: Web Oficial

4 Comentarios

  1. Jesús

    Hola excelente artículo. Estoy buscando información como descargar NIFI para obuntu. Saludos

    Responder
  2. Leonardo

    Hola, buenos días.

    Quería felicitarlos y hacerles las sig. Consulta, cuando se menciona:

    «Ingesta de información no afectar al rendimiento del servicio de la fuente origen ni destino.»
    Si debo hacer una extracción de una tabla de un OLTP, digamos base Oracle Ni-Fi lee de los archevelogs para no afectar al motor de BD ?

    Gracias

    Responder
  3. Santiago Aguilera Quintana

    Hola

    me interesa saber como uno puede certificarse en NIFI o como puede acceder a un curso avanzado de NIFI ???
    Como poder llegar a ser Arquitecto de este tipo de soluciones ??
    de antemano se agradece

    Responder
  4. Emiliano Q.

    Gracias por el articulo:

    Quiero saber vuestra opinión a 2022:

    ¿Cómo respeta Apache NiFi los 7 pilares de la Arquitectura?:
    1. Asegurar el desacoplamiento de las soluciones.
    2. Modularidad y reutilización
    3. Parametrización y configuraciones
    4. Diseño/construcción pensado para escalamiento.
    5. Democratizar datos y habilitación Data driven
    6. Seguridad por diseño.
    7. Continuidad del Negocio.

    He escuchado opiniones diversas de cómo lograr estos puntos y uno de ellos es clusterizar, pero no quiero centrar el debate en clusterización. Quiero opiniones a nivel de Arquitectura y un poco mirando al futuro a corto plazo de Apache NiFi… ¿es una buena decisión adoptarlo, e invertir en crecer?, ¿es adecuado para procesos de misión crítica?. En la actualidad, tengo servicios y procesos ETL funcionando alineados con el negocio. En mi empresa miran a un esquema basado en micro servicios deprecando a NIFI porque supuestamente tiene muchas falencias y es monolítico. Yo veo el bien mayor sobre mantener un Mejor Control y Seguridad.

    Escenario:
    – Cuento con versiones de Apache NiFi desde la 1.10 a 1.18, en procesos de Clusterizar.
    – Plataforma Linux/Win
    – AWS/FTP/SFTP/S3/RDS/GCP/Azure/etc.
    – Datos heterogéneos de múltiples fuentes, provenientes tanto de Cloud como On-Premise.
    – Nivel de privacidad de la data es crítica.
    – Hay poca documentación.
    – Tamaño de la Empresa 2000+ (empleados).
    – Nivel de madurez (cloud: bajo-mediano)

    Gracias por los aportes
    Saludos Emiliano Q.

    Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *