GetFile 处理器在 Apache NiFi 中持续运行

Posted

技术标签:

【中文标题】GetFile 处理器在 Apache NiFi 中持续运行【英文标题】:GetFile processor continually running in Apache NiFi 【发布时间】:2016-11-14 10:19:47 【问题描述】:

我正在使用 Apache NiFi 将一些本地文件复制到 HDFS。 我创建了一个绑定到PutHDFS 处理器的GetFile 处理器。 GetFile 处理器递归地查询一个只读目录。我遇到的问题是文件被不断复制,例如,如果我在 HDFS 上删除复制的文件,那么它们很快就会重新出现。

GetFile 处理器配置中,我将Keep Source File 设置为true,因为该目录是只读的,并且在documentation 中指定了只读目录和如果此参数设置为 false,则文件将被忽略:

如果为 true,则文件在复制到 内容存储库;这会导致文件被不断拾取 并且可用于测试目的。如果不保留原始 NiFi 将 需要对它从中提取的目录具有写权限,否则 它会忽略该文件。

是否可以简单地将每个文件复制一次?

【问题讨论】:

【参考方案1】:

您可以使用ListFile 和FetchFile 处理器来执行此操作。 ListFile 将跟踪它到目前为止看到的文件,除非它们被修改,否则不会继续列出它们。确保将 FetchFile 中的 Completion Strategy 设置为“无”,以确保不会尝试移动/删除文件。

【讨论】:

谢谢,它成功了。有没有办法重置处理器,让它忘记已经导入的文件? 是的,停止 ListFile 处理器,然后右键单击并选择查看状态。在“状态”对话框中,有一个指向“清除状态”的链接。

以上是关于GetFile 处理器在 Apache NiFi 中持续运行的主要内容,如果未能解决你的问题,请参考以下文章

大数据NiFi:NiFi入门案例一

大数据NiFi:NiFi入门案例一

大数据NiFi:集群页面组操作

大数据NiFi:集群页面组操作

Nifi03 处理器

Nifi03 处理器