web-dev-qa-db-fra.com

Différence entre kafka et nifi

Je suis un débutant avec Apache NiFi, mais jusqu'à présent Tout le tutoriel que j'ai lu parle de l'intégration de kafka avec Nifi. Comment il kafka est le complémentaire de Nifi? pourquoi nous n'utilisons pas directement Nifi pour pousser notre message sans utiliser de kafka?

Remarque: Tous les tutoriels que j'ai vus ne parlent pas de ce point.

7

NiFi et Kafka complètent en ce sens que NiFi n'est pas une file d'attente de messagerie comme Apache Kafka. Au contraire, Apache NiFi est un outil de gestion de flux de données, autrement dit de logistique de données.

Supposons ce scénario: vous avez des messages (au format JSON) diffusés via Kafka et vous voulez valider les messages pour vérifier si le message contient tous les champs et s’ils sont valides, vous voulez les messages pour atterrir dans HBase.

Ici, NiFi peut vous aider avec l'approche suivante:

  • NiFi possède ConsumeKafka processeurs que vous pouvez configurer avec votre courtier Kafka et le nom du groupe.
  • Utilisez le processeur NiFi ValidateRecord pour vérifier si les messages reçus sont tous valides
  • S'ils sont valides, vous pouvez connecter la sortie à PutHBaseRecord

En résumé, NiFi vous empêche essentiellement d'écrire beaucoup de code standard. Dans ce cas, une logique personnalisée pour effectuer la validation du schéma et l'écriture dans HBase.

13

Trouvé une réponse intéressante sur questions de la communauté Horthonworks , je la partage ici par souci d'exhaustivité:

  • Apache NiFi et Apache Kafka sont deux outils différents avec des cas d'utilisation différents qui peuvent légèrement se chevaucher. Voici ma compréhension de l'objectif des deux projets.

    NiFi est "n système facile à utiliser, puissant et fiable pour traiter et distribuer les données."

    C'est un outil visuel (avec un REST api) qui implémente programmation basée sur les flux pour permettre à l'utilisateur de créer des flux qui prendront des données à partir d'une grande variété de différents sources, effectuer l'enrichissement, le routage, etc. sur les données au fur et à mesure de leur traitement et produire le résultat vers une grande variété de destinations. Au cours de ce processus, il capture les métadonnées (provenance) sur ce qui est arrivé à chaque élément de données (FlowFile) il a parcouru le flux à des fins de journalisation d'audit et de dépannage.

  • "Apache Kafka est une messagerie de publication-abonnement repensée comme un journal de validation distribué"

    Il s'agit d'une implémentation distribuée du modèle de publication-abonnement qui permet aux développeurs de connecter des programmes entre eux dans différentes langues et sur un grand nombre de machines. Il s'agit davantage d'un élément constitutif de l'informatique distribuée que d'une solution tout-en-un pour le traitement des données.

3
François