hdfs - Nifi List 来自多个路径的文件并将它们路由到各自的目的地

标签 hdfs apache-nifi

我在不同的位置有 3 个文件,为此我使用了 3 个列表文件处理器,然后是获取文件处理器。现在我想将这些文件路由到它们各自的目的地,这对于所有 3 个文件都是不同的。需要一些关于如何做到这一点的帮助。

谢谢

最佳答案

根据您上面提到的路由逻辑,您可以将流程设置为:

ListFile(s) -> FetchFile(s) -> RouteOnAttribute -> PutFile(s)

RouteOnAttribute 中,您可以使用 NiFi 表达式语言支持。例如,您可以拥有三个属性:

destination.one : ${filename:startsWith('abc')}
destination.two : ${filename:startsWith('def')}
destination.three : ${filename:startsWith('xyz')}

解释

您将有三个 ListFile 处理器连接到三个 FetchFile 处理器。然后将三个处理器的Success输出都连接到RouteOnAttribute,定义好以上三个关系后,就可以将这三个关系连接到相关的PutFile 处理器。

在上面的示例中,RouteOnAttribute 将名称以 abc 开头的文件路由到关系 destination.one,文件名以def 转到 destination.two 等等。

enter image description here

enter image description here

关于hdfs - Nifi List 来自多个路径的文件并将它们路由到各自的目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50276346/

相关文章:

java - 如何在 nifi 中拆分街道名称和街道号码中的地址?

apache-kafka - Apache NiFi 中的条件路由

Hadoop:是否可以避免某些文件的复制?

hadoop - 继续启动辅助名称节点 [0.0.0.0]

hadoop - Sqoop Teradata 连接器问题 - 错误 : The user does not have CREATE TABLE access to database

java - nifi 1.0.0 - 扩展标准处理器的行为

hadoop - Hive - 使用不包括行终止符的文本文件创建外部表

shell - 在 oozie 工作流 (HUE) 中,如何将参数从 shell 操作传递到 HDFS fs 操作

postgresql - Nifi putsql处理器错误: Due to org. postgresql.util.PSQLException:列索引超出范围:1

apache-nifi - NiFi最大线程数