Очередь NiFi 1.4 показывает миллионы файлов и 0 МБ - PullRequest
0 голосов
/ 29 мая 2018

В последние дни я сталкиваюсь с проблемой потока NiFi с использованием HDFS List и процессоров Fetch.

В очереди между ними отображается более миллиона потоковых файлов и общий размер 0 МБ.

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

Я попытался перезапустить NiFi и сбросить файлы, но проблема возвращается снова.

Вот снимок экрана частиflow:

enter image description here

Любая идея будет оценена.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Процессоры ListHDFS или любые List* в этом отношении не содержат фактического содержимого.Они просто генерируют потоковый файл, который ссылается на файлы, присутствующие в настроенном пути или ресурсе.Эти потоковые файлы являются пустыми, в том смысле, что они не имеют фактического содержимого, а просто несут ключевые метаданные, связанные с файлами, такие как путь, имя, владелец, время последнего изменения и т. Д., Как часть их атрибутов потокового файла.Вы можете просмотреть их, перечислив очередь и перейдя в раздел Attributes, и все эти метаданные будут там. Предполагается, что процессоры

List в NiFi будут использоваться вместе со своими Fetch аналогами.Таким образом, вы используете ListHDFS с FetchHDFS, ListS3 с FetchS3Object и так далее.Процессоры Fetch используют атрибуты (входящих потоковых файлов) для фактического чтения файлов или ресурсов.Именно по этой причине вы видите 0 bytes в выходных файлах потоков любых List процессоров

И даже на предоставленном вами снимке экрана FetchHDFS читает входящие потоковые файлы из ListHDFS и выводит файлы, которыепереносить фактическое содержимое, как видно в очереди на успех из прикрепленного снимка экрана (4.93 GB)

0 голосов
/ 29 мая 2018

Я не могу объяснить, почему размер будет равен 0 байтам, но обратное давление может быть задействовано только после того, как очередь превысит пороговое значение.Таким образом, если ListHDFS создает 1 миллион потоковых файлов за одно выполнение, то только после того, как 1 миллион потоковых файлов окажется в очереди, NiFi сможет обнаружить, что обратное давление должно быть задействовано.

...