是否可以让nifi放入多个hdfs文件夹?

jutyujz0  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(328)

我需要将一堆json文件流式传输到nifi,然后再传输到hdfs。nifi需要查看json文件中的创建日期(unix),然后将其路由到相应的hdfs文件夹。到目前为止,我的处理器设置如下:
使用kafka->routeoncontent(使用regex^“creationdate”:\“[0-9]{4}-[0-9]{2}-[0-9]{2}$)->puthdfs
每天都有一个hdfs文件夹,比如“2019-01-28”、“2019-01-29”、“2019-01-30”等等。但是,“puthdfs”处理器只会输出到一个目录,我显然不希望有365个处理器。据我所知,nifi没有一种动态创建hdfs文件夹的方法,那么有没有一种优雅的方法来处理这个问题呢?

mspsb9vt

mspsb9vt1#

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
有一个参数 DirectoryPutHDFS 处理器:
应将文件写入的父hdfs目录。如果目录不存在,将创建该目录。支持表达式语言:true(将使用流文件属性和变量注册表进行计算)
所以你可以用 ${creationDate} 对于此参数

相关问题