NiFi 1.4队列显示数百万个文件和0 MB

时间:2018-05-29 16:00:16

标签: hdfs apache-nifi

我在使用HDFS List和Fetch处理器的NiFi流程的最后几天遇到了问题。

它们之间的队列显示超过一百万个流文件,总共大小为0 MB。

这非常令人困惑。如果我试图看到其中一个文件我能够列出它们,如果我点击信息底部我可以确认文件大小,但它似乎是空的。背压设置为100K,因此我无法理解文件数。

我尝试重新启动NiFi并删除文件,但问题又重新出现了。

点击部分流程的截图:

enter image description here

任何想法都会受到赞赏。

2 个答案:

答案 0 :(得分:2)

此问题的ListHDFS或任何List*处理器不包含实际内容。它们只生成一个流文件,该文件引用配置的路径或资源中存在的文件。这些流文件是空的,因为它没有实际内容,但它们只携带与文件关联的关键元数据,如路径,名称,所有者,上次修改时间等,作为其流文件属性的一部分。您可以通过列出队列并导航到Attributes部分来查看它们,所有这些元数据都将在那里。

NiFi中的

List处理器应与其Fetch对应物一起使用。因此,您将ListHDFSFetchHDFSListS3FetchS3Object一起使用,依此类推。 Fetch处理器使用(传入流文件的)属性来实际读取文件或资源。这就是为什么在任何0 bytes处理器的流文件输出中看到List的原因

即使在您提供的屏幕截图中,FetchHDFS也会从ListHDFS读取传入的流文件,并输出带有实际内容的文件,这些文件在附加的成功队列中可见截图(4.93 GB

答案 1 :(得分:0)

我无法解释为什么大小为0字节,但只能在队列超过阈值后才能进行背压。因此,如果ListHDFS在一次执行期间产生100万个流文件,那么直到100万个流文件进入队列之后,NiFi才能检测到应该使用背压。