首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NiFi FlowFile存储库更新失败

NiFi FlowFile存储库更新失败
EN

Stack Overflow用户
提问于 2018-07-12 08:30:37
回答 3查看 8.3K关注 0票数 6

我正在使用Apache NiFi来摄取和预处理一些CSV文件,但是在长时间运行时,它总是失败的。错误总是相同的:

代码语言:javascript
复制
FlowFile Repository failed to update

在日志中搜索时,我总是看到以下错误:

代码语言:javascript
复制
2018-07-11 22:42:49,913 ERROR [Timer-Driven Process Thread-10] o.a.n.p.attributes.UpdateAttribute UpdateAttribute[id=c7f45dc9-ee12-31b0-8dee-6f1746b3c544] Failed to process session due to org.apache.nifi.processor.exception.ProcessException: FlowFile Repository failed to update: org.apache.nifi.processor.exception.ProcessException: FlowFile Repository failed to update
org.apache.nifi.processor.exception.ProcessException: FlowFile Repository failed to update
        at org.apache.nifi.controller.repository.StandardProcessSession.commit(StandardProcessSession.java:405)
        at org.apache.nifi.controller.repository.StandardProcessSession.commit(StandardProcessSession.java:336)
        at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:28)
        at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1165)
        at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:203)
        at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: **Cannot update journal file ./flowfile_repository/journals/8772495.journal because this journal has already been closed**
        at org.apache.nifi.wali.LengthDelimitedJournal.checkState(LengthDelimitedJournal.java:223)
        at org.apache.nifi.wali.LengthDelimitedJournal.update(LengthDelimitedJournal.java:178)
        at org.apache.nifi.wali.SequentialAccessWriteAheadLog.update(SequentialAccessWriteAheadLog.java:121)
        at org.apache.nifi.controller.repository.WriteAheadFlowFileRepository.updateRepository(WriteAheadFlowFileRepository.java:300)
        at org.apache.nifi.controller.repository.WriteAheadFlowFileRepository.updateRepository(WriteAheadFlowFileRepository.java:257)

让我相信根本原因是Nifi不能更新日志文件./flowfile_repository/journals/8772495.journal,因为这个日志已经关闭了**,就像在日志文件中看到的那样。

我怎样才能解决这个问题?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-16 13:44:23

如果NiFi有写入日志文件的问题,那么有一些事情需要检查。

  • 您是否正在从CSV中读取较大(大于64 to )的字段,并试图将它们分配给属性?您可能需要考虑将CSV中的特定字段作为单独的流文件处理,并在以后将其与属性匹配。有关详细信息,请参阅这个邮件列表讨论
  • 您是否根据管理指南中列出的最佳做法检查了NiFi的配置?我还建议理解每个Flowfile存储库设置。它可以让你提出更有针对性的问题。
  • 可能值得更新JVM设置,以允许进行更大的文件处理。请查看详细介绍高性能系统最佳实践的这篇关于Hortonworks的文章

为了解决这个问题,你可能需要调整几件事情。流程是否有效地处理CSV?NiFi是否有足够的内存来处理数据?将CSV文件作为记录处理是否更合适?如果这个概念不熟悉,请查看这个职位,它在NiFi中引入了记录处理。我希望这些资源能帮助您更接近解决方案。如果你有跟进问题告诉我。

票数 2
EN

Stack Overflow用户

发布于 2019-05-02 16:00:39

前几天我遇到了同样的问题。当我检查"flowfile_repository“所在卷上的磁盘空间时,我看到了以下内容

代码语言:javascript
复制
/dev/sdc1       447G  447G   24K 100% /var/proj/data2

100%都满了。

票数 3
EN

Stack Overflow用户

发布于 2021-04-09 01:36:04

在我的Ubuntu系统上运行了2天的Nifi之后,我遇到了同样的问题。

首先,我在Nifi文件夹下运行命令du -shr ./*,结果发现那里有很多应用程序日志。每个日志文件都是101M。我认为这是保留的默认值。

因为我现在不需要保存那么多日志,所以我更新了Nifi /conf文件夹中的/conf文件,将应用程序日志设置为每日滚动。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51300780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档