美文网首页
15_Flume之TailSource源码修改(修复Flume任

15_Flume之TailSource源码修改(修复Flume任

作者: K__3f8b | 来源:发表于2023-09-26 01:16 被阅读0次

    1. 问题-Flume任务故障,文件重命名数据丢失

    我们常用TailSource来监听日志文件,被监听的日志文件是常配置了按时间滚动生成方式的,也就是一天一个文件,到零点时会将gather.log更名为gather-20230415.log。

    由于 tailSource 是根据 iNode + 文件名称组成唯一键进行监听,并记录偏移量的;

    假设,设置Flume任务只监听 gather.log(也可以监听整个日志文件夹,但有问题,看完下面就明白) ,

    Flume采集任务在 2023-04-15的22点出现故障,任务挂掉了,运维人员在第二天上午10点才发现并重启服务;

    重启服务后,任务从偏移量记录表中找到iNode + gather.log 对应的偏移量,但是日志文件中新生成了 gather.log,原来的已经更名为gather-20230415.log,

    任务就重新生成一组唯一键,进行记录偏移量,从头开始采集新的 gather.log 。

    这样新数据是可以正常采集的,但是 gather-20230415.log 里的在 22点到 00点 产生的数据我们就没有采集到,这样就产生数据丢失。

    如果设置监听文件夹下全部文件,上面情况是不是就导致数据重复。

    修复后就直接设置为采集文件夹下的内容(使用正则)

    2. 修复

    修改 唯一键 只使用iNode,剔除文件名称。

    项目结构:

    org.apache.flume.source.taildir.TailFile

    org.apache.flume.source.taildir.ReliableTaildirEventReader

    打包

    替换 ${FLUME_HOME}/lib/flume-taildir-source-1.9.0.jar

    相关文章

      网友评论

          本文标题:15_Flume之TailSource源码修改(修复Flume任

          本文链接:https://www.haomeiwen.com/subject/ytaxjdtx.html