【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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现Flume断点续传采集JSON文件,可以使用Flume的Taildir Source插件。Taildir Source插件可以监控指定目录下的文件变动,并将新增的文件内容采集到Flume。 下面是实现断点续传采集JSON文件的步骤: 1. 确保已安装并配置好Flume。可以参考Flume官方文档进行安装和配置。 2. 在Flume的配置文件,添加Taildir Source的配置。例如,可以在flume.conf配置文件添加以下内容: ``` agent.sources = taildir agent.sources.taildir.type = spooldir agent.sources.taildir.spoolDir = /path/to/json/files agent.sources.taildir.fileHeader = true agent.sources.taildir.fileHeaderKey = filename agent.sources.taildir.basenameHeader = true agent.sources.taildir.basenameHeaderKey = basename agent.sources.taildir.ignorePattern = ^(.)*\\.(.*)$ agent.sources.taildir.deserializer.maxLineLength = 2048 ``` 这里的`agent.sources.taildir.spoolDir`指定了要监控的目录,即存放JSON文件的目录。 3. 配置其他Flume组件,如Channel和Sink,根据具体需求设置。 4. 启动Flume agent,开始监控指定目录下的文件变动并采集JSON文件内容。 ``` $ bin/flume-ng agent -n agent_name -c conf -f conf/flume.conf ``` 其,`agent_name`为指定的agent名称,`conf`为Flume配置文件所在目录。 5. 当有新的JSON文件被添加到监控目录时,Taildir Source会自动采集文件内容并发送到Flume。 通过以上步骤,你可以使用Flume的Taildir Source实现断点续传采集JSON文件。请根据实际情况调整配置文件的参数和路径,以满足你的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海洋 之心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值