Как справиться с проблемой небольших файлов в Nifi - PullRequest
0 голосов
/ 21 сентября 2018

Мой текущий поток в Nifi похож на

ListHDFS->FetchHDFS->SplitText->JoltransformJSon->PUTHBaseJSON. 

Часовой ввод JSON-файлов будет максимально 10 ГБ.Один размер файла будет 80 -100 МБ.

Splittext & JoltTransform -> преобразовать текст и отправить его в виде файлов размером 4 КБ.Следовательно, почасовая работа занимает от 50 до 1,20 минут, чтобы завершить поток.Как я могу сделать это быстрее.Какой будет лучший поток для обработки сценария использования.

Попытка использовать Mergecontent, не сработала.

Спасибо всем

1 Ответ

0 голосов
/ 21 сентября 2018

Вы можете использовать Процессор MergeRecord После Процессор JoltTransfromJson и

сохранить максимальное количество записей , чтобы сделать файл потока пригодным для объединения в однуflowfile.

Использование свойства Max Bin Age в качестве подстановочного знака для принудительное включение допустимого слияния для корзины .

Затем использование ориентированного на запись процессора для HBase, т. е. PutHBaseRecord процессор и настройка службы контроллера считывателя записей (JsonTree Reader) для чтения входящего потока и настройки значения свойства Batch size для получения максимальной производительности.

Используя этот процесс, мы обрабатываем порции записей, которые в конечном итоге увеличивают производительность хранения данных в HBase.

Flow:

ListHDFS->FetchHDFS->SplitText->JoltransformJSon->MergeRecord ->PUTHBaseRecord

См.по этим ссылкам для Конфигурации слияния записей и Конфигурации для чтения записей

...