Flume помещает данные непоследовательным образом

У меня проблема. Я использую apache flume для чтения журналов из txt-файла для перехода в hdfs. почему-то некоторые записи пропускаются при чтении. Я использую fileChannel, пожалуйста, проверьте приведенную ниже конфигурацию.

agent2.sources = file_server
agent2.sources.file_server.type=exec
agent2.sources.file_server.command = tail -F /home/datafile/error.log
agent2.sources.file_server.channels = fileChannel


agent2.channels = fileChannel
agent2.channels.fileChannel.type=file
agent2.channels.fileChannel.capacity = 12000
agent2.channels.fileChannel.transactionCapacity = 10000
agent2.channels.fileChannel.checkpointDir=/home/data/flume/checkpoint
agent2.channels.fileChannel.dataDirs=/home/data/flume/data


# Agent2 sinks
agent2.sinks = hadooper loged
agent2.sinks.hadooper.type = hdfs
agent2.sinks.loged.type=logger
agent2.sinks.hadooper.hdfs.path = hdfs://localhost:8020/flume/data/file
agent2.sinks.hadooper.hdfs.fileType = DataStream
agent1.sinks.hadooper.hdfs.writeFormat = Text
agent2.sinks.hadooper.hdfs.writeFormat = Text
agent2.sinks.hadooper.hdfs.rollInterval = 600
agent2.sinks.hadooper.hdfs.rollCount = 0
agent2.sinks.hadooper.hdfs.rollSize = 67108864
agent2.sinks.hadooper.hdfs.batchSize = 10
agent2.sinks.hadooper.hdfs.idleTimeout=0
agent2.sinks.hadooper.channel = fileChannel
agent2.sinks.loged.channel = fileChannel
agent2.sinks.hdfs.threadsPoolSize = 20

Пожалуйста помоги.


person Bhavesh Gadoya    schedule 11.04.2015    source источник


Ответы (1)


Я думаю, проблема в том, что вы используете 2 приемника, читая их оба с одного канала; в этом случае событие Flume, прочитанное одним из двух приемников, не будет прочитано другим, и наоборот.

Если вы хотите, чтобы оба приемника получали копию одного и того же события Flume, вам необходимо создать выделенный канал для каждого приемника. После создания этих каналов селектор каналов по умолчанию, которым является ReplicatingChannelSelector, создаст копию в каждом канале.

person frb    schedule 14.04.2015
comment
Спасибо frb за ваш ответ... но проблема решена... 2 приемника могут читать с одного канала. - person Bhavesh Gadoya; 14.04.2015
comment
Да, они могут читать с одного и того же канала, это точно, но вы уверены, что стоки читают одни и те же события? Я так не думаю. Если в вашем канале есть, допустим, следующие события: ABCDEF, то если первый сток примет А, то второй сток примет Б, а не А. - person frb; 14.04.2015