Introduction

Apache NiFi est un projet open source de la fondation Apache, supporté par Hortonworks. Il permet d’injecter automatiquement des flux de données entre différents systèmes sources en direction d’autres systèmes en cible.

Par exemple, NiFi peut être très utile dans un cas d’usage comme l’alimentation d’un DataLake Hadoop à partir de plusieurs sources de données.

Basé sur le paradigme de programmation flow-based programming, NiFi fournit une interface web qui permet de construire un flux de données en Drag et Drog. Ainsi, il est possible de définir, de contrôler en temps réel, et d’une certaine manière, de sécuriser l’acheminement de données.

Apache NiFi assure l’intégralité du flux de données, il est tolérant aux pannes, est scalable et a été conçu pour gérer de gros volumes de données en temps réel.

Apache NiFi est compatible avec Kerberos qui assure l’authentification, avec Apache Ranger qui permet la sécurité des autorisations d’accès et avec Apache Knox qui gère la sécurité au niveau authentification et celle des appels REST and HTTP.

Comment l’utiliser ?

NiFi tourne dans une JVM en mode local sur le système d’exploitation hôte (Windows, Linux ou Mac) mais on peut aussi déployer Apache NiFi en mode cluster, un de ses grands atouts une fois en production.

Il est conseillé d’installer le cluster NiFi sur le FrameWork Hadoop, mais vous pouvez également configurer un cluster NiFi en dehors de Hadoop.

Sachez qu’en mode cluster, vous aurez besoin d’Apache Zookeeper pour la gestion de la configuration afin d’assurer la haute disponibilité des services.

Apache ZooKeeper élit un nœud unique en tant que coordinateur du cluster.

Tous les nœuds du cluster envoient un signal au coordinateur pour l’informer sur son état.

Le coordinateur de cluster est responsable de la déconnexion et de la connexion des nœuds. En quelque sorte, il joue le rôle du master sans en être réellement un.

En outre, chaque cluster possède un nœud principal, également élu par ZooKeeper.

Pour plus de détails sur le rôle de chaque nœud sur le cluster, je vous invite à lire la documentation NiFi System Administrator’s Guide.

Composants et fonctionnalités

Les composants principaux de NiFi sur la JVM sont les suivants :

  • Serveur Web qui héberge l’interface graphique,
  • Un flow controler qui orchestre les opérations. Il fournit des tâches à exécuter aux extensions et gère leur ordonnancement,
  • FlowFile Repository dans lequel NiFi enregistre l’état d’un FlowFile,
  • Content Repository où les données d’un FlowFile sont stockées,
  • Répertoire de la provenance où toutes les données d’événement de provenance sont stockées.

En outre, NiFi possède plus de 200 connecteurs ou processeurs qui permettent de collecter en temps réel des données issues de plus de 80 sources : bases de données, messages, fichiers, flux Twitter, etc.

La richesse de la bibliothèque des processeurs permet de réaliser :

  • La data Transformation : compresser ou décompresser des données, convertir un format de données vers un autre (Xml, Json, Txt to Parquet, Avro, etc.) ou bien faire de la crypto et de l’encodage (ConvertCharacterSet, EncryptContent, etc.),
  • ​Les accès aux bases de données : par exemple le processeur Database Access ExecuteSQL ou bien PutHiveQl,
  • ​La Data Ingestion : des processeurs permettent de récupérer des données issues de différentes sources (GetTwitter, GetMongo, GetFile, GetHttp, etc.),
  • La ​Data Egress/Sending Data : des processeurs pour envoyer des données vers des systèmes cible (PutSQL, PutKafka, PutMongo, etc.).
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus