2013-08-22 3 views

ответ

3

Вы можете загружать файлы любого типа. Вам нужно выбрать соответствующий десериализатор.

Ниже маршрута работает сжатый файл. Вы можете выбрать варианты, как вам нужно:

agent.sources = src-1 
agent.channels = c1 
agent.sinks = k1 

agent.sources.src-1.type = spooldir 
agent.sources.src-1.channels = c1 
agent.sources.src-1.spoolDir = /tmp/myspooldir 
agent.sources.src-1.deserializer=org.apache.flume.sink.solr.morphline.BlobDeserializer$Builder 

agent.channels.c1.type = file 

agent.sinks.k1.type = hdfs 
agent.sinks.k1.channel = c1 
agent.sinks.k1.hdfs.path = /user/myevents/ 
agent.sinks.k1.hdfs.filePrefix = events- 
agent.sinks.k1.hdfs.fileType = CompressedStream 
agent.sinks.k1.hdfs.round = true 
agent.sinks.k1.hdfs.roundValue = 10 
agent.sinks.k1.hdfs.roundUnit = minute 
agent.sinks.k1.hdfs.codeC = snappyCodec 
0

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

0

Я написал пользовательский компонент источника и решил. Пользовательский источник может использоваться для приема любого файла.

+0

Привет, Рипон, не могли бы вы подробно объяснить вашу оценку. Я понимаю, что с использованием таможенного источника вы можете читать каждый файл как право на мероприятие? как вы обрабатываете его на стороне поглотителя, чтобы писать в hdfs? –