我需要将一堆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文件夹,是否有一种优雅的方式来处理此问题?
答案 0 :(得分:4)
Directory
处理器中有一个参数PutHDFS
:
应将文件写入的父HDFS目录。如果目录不存在,将创建该目录。 支持表达式语言:true(将使用流文件属性和变量注册表进行评估)
因此您可以将${creationDate}
之类的表达式用作该参数