1、需求:使用Flume监听多个目录下的多个文件实时追加,并上传至HDFS
2、几种常用source比较
- Exec source适用于监控一个实时追加的文件,但不能保证数据不丢失。
- Spooldir Source能够保证数据不丢失,且能够实现断点续传,但延迟较高,不能实时监控,采集的目录,适合离线采集的场景。
- 而Taildir Source既能够实现断点续传,又可以保证数据不丢失,还能够进行实时监控,既可以做离线采集也可以做实时采集。
3、需求分析

4、创建flume agent配置文件flume-taildir-hdfs.conf
cd /data/flume/apache-flume
vim job/flume-taildir-hdfs.conf
添加:
# Name the components on this agent
a3.sources = r3
a3.sinks = k3
a3.channels = c3
# Describe/configure the source
a3.sources.r3.type = TAILDIR
# JSON格式的文件,记录inode、绝对路径和每个尾文件的最后位置。
a3.sources.r3.positionFile = /data/flume/apache-flume/tail_dir.json
# 定义监控文件组
a3.sources.r3.filegroups = f1 f2
# 定义监控目录文件
a3.sources.r3.filegroups.f1 = /data

本文详细介绍了如何使用Flume的Taildir Source实时监控多个目录下的文件,并将追加内容实时上传至HDFS。讨论了Exec source、Spooldir Source和Taildir Source的特点,重点阐述了Taildir Source的优势,包括断点续传和数据不丢失。通过创建flume agent配置文件并运行Flume,展示了具体操作步骤。
最低0.47元/天 解锁文章
339

被折叠的 条评论
为什么被折叠?



