Чтение паркетных файлов из кластера HDFS - PullRequest
0 голосов
/ 09 ноября 2018

ищет совет о том, как читать файл паркета из кластера hdfs, используя Apache Nifi. В кластере есть несколько файлов, представленных в одном каталоге, которые хотят прочитать все в одном потоке. Предоставляет ли Nifi встроенный компонент для чтения файлов в каталоге HDFS (в данном случае паркет)?

пример- 3 файла в каталоге-

HDFS: //app/data/customer/file1.parquet

HDFS: //app/data/customer/file2.parquet

HDFS: //app/data/customer/file3.parquet

Спасибо!

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Вы можете использовать FetchParquet процессор в сочетании с ListHDFS / GetHDFS..etc процессорами.

Этот процессор добавлен начиная с версии NiFi-1.2 и Jira NiFi-3724 для решения этой проблемы.

  • ListHD FS // сохраняет состояние и работает постепенно.
  • GetHDFS // не сохраняет состояние get всех файлов из настроенного каталога (Сохраняйте свойство исходного файла равным True, если вы не хотите удалять исходный файл) .
  • Вы можете использовать некоторые другие способы (используя UpdateAttribute..etc), чтобы добавить полное имя файла в качестве атрибута в файл потока, затем передать соединение с процессором FetchParquet, а затем процессор извлечет эти файлы паркета.

На основе RecordWriter указан FetchParquet Процессор reads parquet files и запишите их в формате, указанном в RecordWriter .

Поток:

ListHDFS/GetHDFS -> FetchParquet -> other processors
0 голосов
/ 09 ноября 2018

Если вам необходимо прочитать файлы из HDFS, вы можете использовать процессоры HDFS, доступные в nifi-hadoop-bundle. Вы можете использовать любой из двух подходов:

  • Комбинация ListHDFS и FetchHDFS
  • GetHDFS

Разница между этими двумя подходами заключается в том, что GetHDFS будет продолжать перечислять содержимое каталогов, настроенных для каждого запуска, поэтому оно будет создавать дубликаты. Однако прежний подход отслеживает состояние, поэтому при каждом последующем запуске возвращаются только новые дополнения и / или модификации.

...