Apache nifi 从FetchHDFS处理器获取文件总数

Apache nifi 从FetchHDFS处理器获取文件总数,apache-nifi,kylo,Apache Nifi,Kylo,thr是从单次运行FetchHDFS处理器获取文件总数的一种方法吗 我的用例是==>从hdfs目录中读取所有文件,对它们进行压缩,然后进行进一步处理。但要停止合并处理器,直到所有文件都在队列中,所以我需要文件计数来设置最小条目数 我可以使用wait/notify,但是我仍然需要total count,以便正确设置标志 在任何情况下,将此作为FetchHDFS或任何文件列表处理器的属性听起来是否合乎逻辑 根据配置更新2合并处理器,合并处理器应每300秒释放一次文件。在我的用例中,总的输入文件是20

thr是从单次运行FetchHDFS处理器获取文件总数的一种方法吗

我的用例是==>从hdfs目录中读取所有文件,对它们进行压缩,然后进行进一步处理。但要停止合并处理器,直到所有文件都在队列中,所以我需要文件计数来设置最小条目数

我可以使用wait/notify,但是我仍然需要total count,以便正确设置标志

在任何情况下,将此作为FetchHDFS或任何文件列表处理器的属性听起来是否合乎逻辑

根据配置更新2合并处理器,合并处理器应每300秒释放一次文件。在我的用例中,总的输入文件是2000个,但它们以大约200秒的慢速度出现。所以下面的配置应该足以合并所有文件。但它不起作用。我仍然可以看到合并处理器让文件以更小的间隔运行。

更新3==所有1600个文件的总大小为318KB,远小于存储箱大小128MB

ListHDFS/FetchHDFS不提供在特定运行中拾取的文件数。但是,您可以使用ExecuteScript或UpdateAttribute,并在Wait/Notify的帮助下使其工作


我建议的最简单的解决方案是,MergeContent还采用了一个名为Max Bin Age的可选属性,您可以在此处配置一些时间单位,如2分钟或30秒,并将最小条目数设置为更高的数值。这样,无论队列大小与配置的最小条目数不匹配,一旦为最大仓位年龄配置的时间过去,这些排队的文件将被拾取并合并在一起。这可能需要一些假设和实验来完成正确的配置。

我将合并处理器配置到了一个更高的限制,因此所有文件都可以被合并。我已经更新了我的原始问题。它不工作。这是因为配置了“最大组大小”。当配置最小组大小和最大组大小时,执行最大大小的流文件将在其自己的存储箱中处理,因此,您会看到一些较小数量的文件合并在一起。所有流文件的总大小为1600~300 KB。存储桶的大小是128MB,所以不知道为什么合并处理器会让较小的组离开。我期待着1个合并,我最终得到178个。请参阅原始帖子中的更新3。我不完全了解最小组大小和最大组大小属性。我在使用它们时有一些奇怪的经历。我的用例从未需要配置这些属性。我建议你写信给我users@nifi.apache.org为了更清楚。