【发布时间】:2018-05-10 01:55:34
【问题描述】:
我遇到了一个很奇怪的问题。
我目前有一个 nifi 流,它使用一个 getfile 处理器来抓取一个放在目录中的日志文件。从那里,它被传递到一个自定义处理器,文件在 session.read 内部使用 BufferedReader 类进行处理。我做了所有必要的处理并传递流文件。简单的东西
这对于中等大小的文件非常有效,但是当我尝试处理大型日志文件(大约 2.5GB)时,我开始在尝试从缓冲读取器调用 readLine() 时返回 null。似乎缓冲阅读器没有打开/读取非常大的文件。
关于解决问题的任何建议,以找出为什么这种行为发生在较大的文件而不是较小的文件?
【问题讨论】:
-
NiFi 不会根据流文件内容的大小做任何不同的事情。
-
您应该考虑使用测试框架为您的处理器进行测试并分析其行为。如果您共享自定义处理器的代码,可能会出现问题,但如果不知道其功能和/或使用的库,则很难诊断。
-
您是否尝试在处理文件之前对其进行拆分?
-
@ÓscarAndreu 不,我没有。我正在尝试按原样读取文件
-
@crazyCoder 我用一些适合我的技巧创建了一个回复,希望对您有所帮助。
标签: apache-nifi