2015-08-24 2 views
0

Я новичок в Flume, и я изучал возможности перелистывать файлы HDFS почасово, используя Flume.Apache flum выкатывает файлы HDFS на почасовой основе

В моем проекте Apache Flume будет читать сообщения от Rabbit MQ, и он будет записывать его в HDFS.

hdfs.rollInterval - Он закрывает файл на основе временного интервала, когда он открывается.

Новый файл будет создан только тогда, когда Flume прочитает сообщение после закрытия файла. Этот вариант не решает нашу проблему.

hdfs.path = /%y/%m/%d/%H - Этот параметр работает нормально, и он создает папку на почасовой основе. Но проблема в новой папке будет создана только при появлении нового сообщения.

Например: Сообщения до 11.59, файл будет в открытом состоянии. Затем сообщения прекращаются до 12.30. Но файл все равно будет находиться в открытом состоянии. После 12.30 приходит новое сообщение. Затем из-за конфигурации hdfs.path, предыдущий файл будет закрыт и новый файл будет создан в новой папке.

Предыдущий файл не предназначен для вычисления, пока он не будет закрыт.

Нам нужна возможность полностью закрыть открытые файлы на почасовой основе. Мне интересно, есть ли в лотерее какие-то варианты для этого.

ответ

0

hdfs.rollInterval описывается как

Количество секунд ожидания перед прокаткой текущего файла

Так эта линия должна вызывать файлы выделить в течение часа, в то время

hdfs.rollInterval = 3600 

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

hdfs.rollSize = 0 
hdfs.rollCount = 0 
0

hdfs.idleTimeout

Тайм-аут, после которого неактивные файлы закрываются (0 = отключить автоматическое закрытие неиспользуемых файлов)

Например, вы можете установить это свойство 180. Файл будет открыт