【发布时间】:2016-12-03 20:55:07
【问题描述】:
我正在尝试使用 NiFi 使用 HDF 1.2 处理大型 CSV 文件(每个文件可能有数十亿条记录)。我已经实现了我的流程,对于小文件来说一切正常。
问题是,如果我尝试将文件大小推到 100MB(1M 记录),我会从负责将文件拆分为单个记录的 SplitText 处理器获得java.lang.OutOfMemoryError: GC overhead limit exceeded。我已经搜索过了,这基本上意味着垃圾收集器执行时间过长而没有获得太多堆空间。我预计这意味着生成太多流文件的速度太快。
我该如何解决这个问题?我尝试更改 nifi 关于最大堆空间和其他内存相关属性的配置,但似乎没有任何效果。
现在我添加了一个行数为 1K 的中间 SplitText,这可以让我避免错误,但我不认为这是一个可靠的解决方案,当传入的文件大小将可能远不止于此,恐怕我会从处理器中得到相同的行为。
欢迎任何建议!谢谢
【问题讨论】:
标签: java garbage-collection hortonworks-data-platform apache-nifi hortonworks-sandbox