是否可以将Nifi放入多个HDFS文件夹?

时间:2019-01-28 21:20:53

标签: hadoop hdfs apache-nifi

我需要将一堆json文件流式传输到Nifi,然后将其转到HDFS。 Nifi需要查看json文件中的创建日期(UNIX格式),然后将其路由到相应的HDFS文件夹。到目前为止,我已经将处理器设置如下:

使用Kafka-> RouteOnContent(使用正则表达式^“ creationDate”:\“ [0-9] {4}-[0-9] {2}-[0-9] {2} $)-> PutHDFS < / p>

每天都有一个HDFS文件夹,例如“ 2019-01-28”,“ 2019-01-29”,“ 2019-01-30”等。但是,“ PutHDFS”处理器只会输出到单目录,我显然不想拥有365个处理器。据我所知,Nifi尚无法动态创建HDFS文件夹,是否有一种优雅的方式来处理此问题?

1 个答案:

答案 0 :(得分:4)

https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-hadoop-nar/1.8.0/org.apache.nifi.processors.hadoop.PutHDFS/index.html

Directory处理器中有一个参数PutHDFS

应将文件写入的父HDFS目录。如果目录不存在,将创建该目录。 支持表达式语言:true(将使用流文件属性和变量注册表进行评估)

因此您可以将${creationDate}之类的表达式用作该参数