Flume OG Bug 引发大量重复数据

环境:

agent:            default-flow tail("/storage/log/pcclient/action/action1x/action1x.log")       agentDFOSink("collector-host", 35853)

collector:       default-flow collectorSource(35853)     collectorSink("file:///home/flume/collected/accesslog/%Y%m%d/%H00", "%{host}-", 3600000, raw()) 


故障现象:

在某几个小时里面出现了大量的重复日志,导致收集的Collector收集的数据非常大(飘红的部分)。

568M 1100
567M 1200
575M 1300
572M 1400
571M 1500
2.6G 1600
839M 1700
579M 1800
1.6G 1900
1021M 2000
844M 2100
2.4G 2200
881M 2300


故障定位:

Flume OG 的文档出奇的少,除了官网上的那个UserGuide,只能翻出source code来定位了... 最终发现是因为32KB限制的原因,如果某一行数据超过32KB就会触发这个Bug,导致TailSource误认为文件被Rolling了,然后不段重复的读取数据并发送,直到下一个小时日志文件真正被rolling的时候才恢复正常。其实网官上也提到了一个Event不能超过32KB,但是代码中就是没有对这个进行特殊处理,也没有错误日志,真弄不太明白为什么写出这种代码。而且想提个patch都找不到门...只能把希望寄托在Flume NG上,感兴趣的同学可以参与到Flume NG这个项目。




你可能感兴趣的:(File,文档,360,patch)