1
votes

Apache Nifi - Les Flowfiles sont bloqués dans la file d'attente

Les fichiers de flux sont bloqués dans la file d'attente (répartition de la charge par attribut) et ne sont pas lus par le processeur en aval suivant (MergeRecord avec CSVReader et CSVRecordSetWriter). Depuis l'interface utilisateur Nifi, il semble que les fichiers de flux se trouvent dans la file d'attente, mais lorsque vous essayez de lister la file d'attente, il indique "La file d'attente n'a pas de fichiers de flux". Tenter de vider la file d'attente donne également le message exact. Nifi Logs n'a aucune exception liée au processeur. Il y a environ 80 fichiers de flux en file d'attente.

J'ai essayé les actions ci-dessous, mais en vain:

  • Redémarrage du processeur en aval et en amont (ConvertRecord).
  • CSVReader et CSVRecordSetWriter désactivés et activés.
  • Équilibrage de charge désactivé.
  • Expiration du fichier de flux définie sur 3 s.

Capture d'écran: Flowfile: entrez la description de l'image ici Propriétés MergeRecord: entrez la description de l'image ici Service CSVReader: entrez la description de l'image ici CSVRecordSetWriter: entrez la description de l'image ici


5 commentaires

une capture d'écran serait utile.


@daggett a ajouté une capture d'écran. Fait moi savoir si tu as besoin de quoique ce soit d'autre.


Veuillez également afficher les paramètres de MergeRecord


Ajout de tous les détails.


Vous devrez probablement mettre à niveau vers la version 1.9.0 pour résoudre certains problèmes liés aux connexions à charge équilibrée.


3 Réponses :


0
votes

Ceci est probablement dû au fait que le contenu du fichier de flux a été supprimé. Cependant, son entrée est toujours présente dans le registre des fichiers de flux.

si vous avez une configuration nifi dockérisée et si vous n'avez pas un flux de production lourd, vous pouvez arrêter votre flux nifi et tout supprimer dans les dossiers du référentiel _ * (flowfile-repository, content repository, etc.) (à condition que vous ayez tous vos répertoires montés et qu'aucune autre perte de données ne soit à risque)

Faites-moi savoir si vous avez besoin d'une assistance supplémentaire


0 commentaires

0
votes

Votre processeur d'enregistrement de fusion ne fonctionne que sur le nœud principal, et probablement tous les fichiers se trouvent sur d'autres nœuds (puisque vous effectuez un équilibrage de charge). NiFi n'est pas suffisamment conscient pour remarquer que le processeur en aval ne fonctionne que sur le primaire, il ne rééquilibre donc pas automatiquement tout sur le nœud principal. Le simple fait de changer MergeRecord pour qu'il s'exécute sur tous les nœuds permettra aux fichiers de passer.

Hélas, je n'ai pas trouvé de moyen de récupérer tous les fichiers de flux sur le nœud principal, vous pouvez utiliser la stratégie d'équilibrage de charge "Single Node" pour obtenir tous les fichiers sur le même nœud, mais ce ne sera pas forcément le primaire.


0 commentaires

0
votes

Vous avez une configuration manquée dans la façon dont vous équilibrez la charge de vos FlowFiles. Pour vérifier cela, arrêtez votre processeur MergeRecord pour pouvoir vérifier et voir ce qui se trouve dans votre file d'attente.

Dans la fenêtre modale affichée, vous pouvez vérifier où sont vos flowfiles en attente, il est fort probable que vos FlowFiles soient en fait sur l'un des autres nœuds mais puisque le MergeRecord s'exécute sur le nœud principal, il n'a rien dans sa file d'attente.


0 commentaires