首页 > 解决方案 > Apache Nifi - 流文件卡在队列中

问题描述

流文件卡在队列中(按属性负载平衡),并且不会被下一个下游处理器读取(MergeRecord 与 CSVReader 和 CSVRecordSetWriter)。从 Nifi UI 看来,流文件在队列中,但是当尝试列出队列时,它显示“队列没有流文件”。尝试清空队列也会给出确切的消息。Nifi Logs 没有任何与处理器相关的异常。队列中大约有 80 个流文件。

我尝试了以下行动项目,但都是徒劳的:

屏幕截图:流文件: 在此处输入图像描述 MergeRecord 属性: 在此处输入图像描述 CSVReader 服务: 在此处输入图像描述 CSVRecordSetWriter: 在此处输入图像描述

标签: apache-nifi

解决方案


您的合并记录处理器仅在主节点上运行,并且可能所有文件都在其他节点上(因为您正在进行负载平衡)。NiFi 没有意识到下游处理器仅在主节点上运行,因此它不会自动将所有内容重新平衡到主节点。只需将 MergeRecord 更改为在所有节点上运行即可允许文件通过。

唉,我还没有找到让所有流文件回到主节点的方法,你可以使用“单节点”负载均衡策略来获取同一个节点上的所有文件,但不一定是主节点。


推荐阅读