Apache Nifi

From air
Revision as of 18:58, 9 April 2017 by Clement.soulier (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Apache NiFi est un logiciel libre de gestion de flux de données, il permet d’automatiser la gestion des flux de données entre plusieurs systèmes distribués ou non. Il permet aussi de facilement transformer à la volée les données pour les faire passer d’un système à un autre. NiFi donne accès à une interface graphique facilement utilisable permettant du configurer ses flux avec du drag and drop par exemple. NiFi est conçu pour consommer le moins de ressources possibles du système hôte, en particulier au niveau du CPU et du disque.

https://nifi.apache.org

https://community.hortonworks.com/articles/46258/iot-example-in-apache-nifi-consuming-and-producing.html


NiFi Architecture

NifiArchitecture.png


NiFi s’exécute sur une JVM sur une machine hôte. Les composants primaires de NiFi sont :

Web server :

Il héberge les commandes HTTP de NiFi et permet de contrôler l’API

Flow Controller

Le contrôleur de flux est le chef d’orchestre, c’est lui qui alloue les threads pour exécuter les extensions et il contrôle l’ordre d’exécution des ressources reçues par les extensions.


Extensions

Il y beaucoup d’extension possible à NiFi. Les extensions s’exécutent à l’intérieur de la JVM.


FlowFile Repository

Une FlowFile représente chaque objet transitant par le système. Pour chaque objet NiFi trace les évènements liés à l’objet. Le FlowFile Repository est l’endroit où NiFi garde en mémoire l’état de chaque FlowFile.


Content Repository

Le Content Repository est l’endroit où se trouve les données d’un FlowFile. Le système par défaut stock les données sur le système de fichier, cependant on peut spécifier plusieurs lieux de stockage pour réduire la charge sur un seul volume.


Provenance Repository

Le Provenance Repository est l’endroit où sont stockés toutes les données reçues. Par défaut on peut utiliser un plusieurs disques. Chaque évènement de stockage est indexé et peut être facilement recherché.


Déploiement avec Docker

docker run -d -p 8080:8080 -p 8081:8081 -p 8443:8443 xemuliam/nifi
docker-machine ls

Browse http://localhost:8080/nifi