@nickolas_php

Flume создаёт очень много файлов в HDFS. Как заставить его дописывать в файл а не создавать новый?

Более подробно вопрос и возможные пути решения Я описал тут: bigdata-intips.blogspot.com/2015/11/hdfs-c-pache-k... но суть в том, что новые файлы всё равно создаются. К примеру если n секунд не было никаких событий, то срабатывает параметр idleTimeout, после этого все данные записываются в файл. После возобновления потока данных создаётся уже новый файл рядом а не дозаписывается старый.

  • Есть ли смысл бороться с этим, ведь очень много маленьких файлов быстро займут пространство имён в NameNode hdfs-a?
  • Может есть другие способы или подходы к сохранению данных в hdfs? К примеру может сразу записывать данные в Hive?.
  • Вопрос задан
  • 356 просмотров
Пригласить эксперта
Ответы на вопрос 2
@protven
hdfs.rollInterval=0 не пробовали ?
Ответ написан
Комментировать
@nickolas_php Автор вопроса
Пробывал, но проблема в том, что если поток заканчивается(нет событий) а потом возобновляется к примеру через несколько секунд, то файл всёравно создаётся новый. Разные подходы Я постарался собрать тут: bigdata-intips.blogspot.com/2015/11/hdfs-c-pache-k... . Наиболее адекватным показалось склеивать файлы фоновой задачей. Но это, увы, показалось мне плохим решением. Пока переключился на Spark Streaming откуда сырую информацию пишу в HIVE таблицы а данные, которые нужно получать быстро для realtime аналитики пишу в HBASE. Буду рад услышать Ваши рабочие варианты.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы