Можно ли заставить Нифи ставить на несколько папок HDFS? - PullRequest
0 голосов
/ 29 января 2019

Мне нужно передать поток файлов JSON в Nifi, который затем перейдет в HDFS.Нифи нужно посмотреть дату создания (формат UNIX) в файле json, а затем направить ее в соответствующую папку HDFS.Пока что у меня есть процессоры, настроенные так:

Потребление Kafka -> RouteOnContent (с использованием регулярного выражения ^ "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, поэтомуЕсть ли элегантный способ справиться с этим?

1 Ответ

0 голосов
/ 29 января 2019

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}

...