2015-04-11 2 views
0

У меня проблема. Я использую apache flume для чтения журналов из txt-файла, чтобы перейти в hdf. так или иначе некоторые записи пропускаются во время чтения. Я использую 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 

Просьба помочь.

ответ

0

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

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

+0

Спасибо frb за ваш ответ ... но он решен ... 2 раковины могут читать с того же канала. –

+0

Да, они могут читать по тому же каналу, это точно, но уверены ли вы, что раковины читают одни и те же события? Я так не думаю. Если у вашего канала есть, скажем, следующие события: ABCDEF, то если первый приемник возьмет A, тогда вторая раковина возьмет B, а не A. – frb

+0

Нет, я не сталкивался с такой проблемой .. оба работают нормально .. –

Смежные вопросы