【问题标题】:Flume sinks data in inconsistance fashionFlume 以不一致的方式接收数据
【发布时间】:2015-04-11 10:02:34
【问题描述】:

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

请帮忙。

【问题讨论】:

    标签: hadoop flume flume-ng


    【解决方案1】:

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

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

    【讨论】:

    • 感谢 frb 的回复...但已经解决... 2 个 sinks 可以从同一个频道读取数据。
    • 是的,它们可以从同一个通道读取,这是肯定的,但是您确定接收器正在读取相同的事件吗?我不这么认为。如果您的频道有,假设以下事件:ABCDEF,那么如果第一个接收器采用 A,那么第二个接收器将采用 B,而不是 A。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    相关资源
    最近更新 更多