2015-02-13 2 views
0

Я запускаю агент flume, который использует канал памяти.Канал памяти дыма потребляет дисковое пространство

agent.channels.c1.type = memory 
agent.channels.c1.capacity = 1000000 

Источник имеет тип syslogtcp и утонуть, если типа hdfs. Агент собирает около 1 миллиона записей каждую минуту.

Опасность, которую я испытываю, заключается в том, что мой фломастер потребляет дисковое пространство, хотя я использую канал памяти. Поэтому, если мой агент работает около месяца, он использует около 300 гб дискового пространства, которое вызывает проблему. Таким образом, вопросы:

Q1: Почему дисковое пространство потребляется при запуске этого агента, который использует канал памяти?

Q2: Когда это пространство будет выпущено? Есть ли какие-либо условия или это должно быть сделано вручную? Любая идея, по которой будет храниться эти файлы?

ответ

0

Насколько велики документы? Типичный размер блока в HDFS составляет 64 МБ, иногда устанавливается 128 МБ ... поэтому, если у вас есть документ 2k, он по-прежнему занимает 64 МБ на диске !!!

Вы должны установить параметр «batchsize» на большое число, чтобы пакетные события в больших файлах на HDFS. Конечно, это также изменит скорость, с которой события выгружаются на HDFS, и задания после этого, поэтому, если вы находитесь в режиме реального времени, это не идеально. Вместо того, чтобы погружаться в HDFS, вы можете захотеть вместо этого потопить HBase, который объединяет меньшие события в большую таблицу.

+0

спасибо за ответ, мои файлы создаются с размером ~ 350 мб, т.е. когда количество рулонов достигло. Но как это займет 300 гб данных за период? если предположить, что лоток хранит его на диске для временного назначения, все равно он должен занимать только 350 мб, а не gbs. –