apache-nifi - Apache Nifi - 流文件卡在队列中
问题描述
流文件卡在队列中(按属性负载平衡),并且不会被下一个下游处理器读取(MergeRecord 与 CSVReader 和 CSVRecordSetWriter)。从 Nifi UI 看来,流文件在队列中,但是当尝试列出队列时,它显示“队列没有流文件”。尝试清空队列也会给出确切的消息。Nifi Logs 没有任何与处理器相关的异常。队列中大约有 80 个流文件。
我尝试了以下行动项目,但都是徒劳的:
- 重新启动下游和上游(ConvertRecord)处理器。
- 禁用和启用 CSVReader 和 CSVRecordSetWriter。
- 禁用负载平衡。
- 流文件过期设置为 3 秒。
解决方案
您的合并记录处理器仅在主节点上运行,并且可能所有文件都在其他节点上(因为您正在进行负载平衡)。NiFi 没有意识到下游处理器仅在主节点上运行,因此它不会自动将所有内容重新平衡到主节点。只需将 MergeRecord 更改为在所有节点上运行即可允许文件通过。
唉,我还没有找到让所有流文件回到主节点的方法,你可以使用“单节点”负载均衡策略来获取同一个节点上的所有文件,但不一定是主节点。
推荐阅读
- amazon-web-services - 在由 S3 触发的 AWS 中运行 ETL python 脚本
- docker - Docker 容器:在没有 root 的情况下删除缓存 - 其他选项?
- mysql - 将 SQL 查询中的值格式化为数字以将它们导出到 Excel
- python-textfsm - 为 Cisco XR 创建 Textfsm 模板 // 显示 isis 数据库
- java - 如何从 Java 中的 docx 中获取部分
- c++ - 如何在不重新创建现有文件的情况下写入 .txt 文件
- python - 如何创建多个对象以及提供外键字段的外键?
- java - JaxRs 客户端不执行 MessageBodyReader
- java - 从带有对象内容的 XML 文件创建 java 代码
- c# - 在 LUIS 中使用上下文