0

我有一个问题。我正在使用 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

请帮忙。

4

1 回答 1

0

我认为问题在于您正在使用 2 个接收器从单个通道读取它们;在这种情况下,两个接收器之一读取的 Flume 事件不会被另一个接收器读取,反之亦然。

如果您希望两个接收器接收相同 Flume 事件的副本,那么您需要为每个接收器创建一个专用通道。创建这些频道后,默认频道选择器(即 )ReplicatingChannelSelector将在每个频道中创建一个副本。

于 2015-04-14T10:50:57.750 回答