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/mydata<