Обработка больших текстовых файлов через Nifi возвращает ноль - PullRequest
0 голосов
/ 09 мая 2018

У меня довольно странная проблема.

В настоящее время у меня есть поток nifi, который использует процессор getfile для захвата файла журнала, который сбрасывается в каталог. Оттуда он передается пользовательскому процессору, где файл обрабатывается внутри session.read с использованием класса BufferedReader. Я делаю всю необходимую обработку и передаю файлы потока. Простые вещи

Это прекрасно работает для файлов среднего размера, но когда я пытаюсь обработать большой файл журнала (около 2,5 ГБ), я начинаю возвращать значение null при попытке вызвать readLine () из буферизованного читателя. Кажется, что очень большие файлы не открываются и не читаются с помощью буферизированного читателя.

Есть ли какие-либо советы по устранению неполадок, чтобы выяснить, почему это происходит для больших файлов, а не для маленьких?

1 Ответ

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

Попробуйте разбить файл на более мелкие части, например, 1000 строк на файл потока. Это можно сделать с помощью компонента SplitText .Я имел эту проблему в прошлом и был решен с помощью этого подхода.Также может случиться, что SplitText блокирует NiFi, в этом случае вы можете объединить несколько SplitText для разделения на 100000 строк -> 10000 строк -> 1000 строк, с помощью этого трюка вы можете избежать этой проблемы.

...