NiFi数据流不修改ListFile配置就冻结无法运行该如何解决
问题原因
该现象是NiFi ListFile 处理器的默认状态追踪机制导致的:
- ListFile默认会将已扫描过的文件信息、最后一次扫描的时间戳存储在处理器状态中,重启后会默认从上次停止的位置继续扫描,若目录下没有新增符合过滤规则的文件,就不会产生任何输出流文件。
- 你修改输入目录配置时会自动清空处理器的存储状态,相当于触发一次全目录扫描,所以就可以正常输出已有文件的流文件。
解决方案
你可以根据使用场景选择对应的配置调整方案:
测试/全量重跑场景(每次启动都需要扫描目录下所有现有文件)
打开ListFile处理器配置的属性标签页,找到Tracking State配置项,将默认值NODE修改为NONE即可。该配置会关闭处理器的状态记录逻辑,每次启动都会全量扫描目录下所有符合条件的文件。
注意:该配置不适用生产增量同步场景,会导致文件被重复处理。
生产增量同步场景(仅需要处理目录下新增的文件)
- 检查调度配置:如果调度策略设置为
仅运行一次,请修改为定时器驱动,设置合理的运行间隔(如60秒),重启后处理器会按间隔自动扫描新增文件。 - 若偶尔需要重跑历史文件,不需要修改目录配置,右键点击ListFile处理器,选择
查看状态,点击清除状态后再启动处理器,即可触发全量扫描。 - 额外检查NiFi运行用户对输入目录是否有可读权限,避免权限问题导致扫描失败。
内容的提问来源于stack exchange,提问作者user3636924
相关产品推荐
相关产品推荐

