【Flume中间件】(5)实时监控多个文件实现断点续传

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 【Flume中间件】(5)实时监控多个文件实现断点续传

实时监控多个文件实现断点续传

我们之前使用的是exec进行监控一个文件是否有追加数据,这时候会面临问题就是一旦该机器宕机,那么该阶段的数据就会丢失,也不是丢失,就是如果flume停止了,但是此时数据还在进行追加,因为tail -F是读取文件的最后10行,那么之前的数据就会没有读取到,但是更改tail 的参数让flume从头读,这样是不会丢失数据,但是会产生重复数据。

所以有一种解决办法就是我们监控的同时记录下当前读取文件的位置信息,并把它保存到磁盘,这样flume任务再次开启时,就会读取该json文件,继续上一次读取的位置。

a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = taildir
# 文件读取位置信息路径
a1.sources.r1.positionFile = /opt/module/flume/position/position.json
# 配置两个组,分别监听两个文件
a1.sources.r1.filegroups = f1 f2
a1.sources.r1.filegroups.f1 = /home/hadoop/data3/file1
a1.sources.r1.filegroups.f2 = /home/hadoop/data3/file2
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

我们可以看到能够同时监听两个文件的追加数据。

我们还可以采用正则来进行匹配多个文件。

a1.sources.r1.type = taildir
a1.sources.r1.channels = c1
a1.sources.r1.positionFile = /opt/module/flume/position/position.json
a1.sources.r1.filegroups = f1
a1.sources.r1.filegroups.f1 = /home/hadoop/data3/.*.txt

上面配置的意思就是监听data3下所有以.txt结尾的文件。


目录
相关文章
|
1天前
|
存储 分布式计算 监控
【Flume】Flume 监听日志文件案例分析
【4月更文挑战第4天】【Flume】Flume 监听日志文件案例分析
|
1天前
|
存储 监控 数据库
【Flume】 Flume 断点续传原理分析
【4月更文挑战第4天】【Flume】 Flume 断点续传原理分析
|
6月前
|
监控 Java
64 Flume采集文件到HDFS
64 Flume采集文件到HDFS
32 0
|
10月前
|
开发框架 前端开发 JavaScript
ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件
ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件
|
中间件
【Flume中间件】(14)自定义Sink
【Flume中间件】(14)自定义Sink
74 1
|
中间件 Java 数据库连接
【Flume中间件】(13)自定义Source
【Flume中间件】(13)自定义Source
119 0
|
中间件
【Flume中间件】(12)自定义拦截器
【Flume中间件】(12)自定义拦截器
76 0
|
监控 中间件
【Flume中间件】(11)聚合组
【Flume中间件】(11)聚合组
54 0
|
负载均衡 中间件 大数据
【Flume中间件】(10)sink组负载均衡
【Flume中间件】(10)sink组负载均衡
105 1
|
中间件
【Flume中间件】(9)sink组故障转移
【Flume中间件】(9)sink组故障转移
86 1