Exec source 适用于监控一个实时追加的文件,但不能保证数据不丢失;
Spooldir Source 能够保证数据不丢失,且能够实现断点续传,但延迟较高,不能实时监控; Taildir Source 既能够实现断点续传,又可以保证数据不丢失,还能够进行实时监控。
1)案例需求:使用 Flume 监听整个目录的实时追加文件,并上传至 HDFS
2)需求分析:
实现步骤:
1.创建配置文件 flume-taildir-hdfs.conf
创建一个文件
添加如下内容
2.启动监控文件夹命令
3. 向 files 文件夹中追加内容
在/opt/module/flume 目录下创建 files 文件夹
向 upload 文件夹中添加文件
4. 查看 HDFS 上的数据
Taildir 说明:
Taildir Source 维护了一个 json 格式的 position File,其会定期的往 position File 中更新每个文件读取到的最新的位置,因此能够实现断点续传。Position File 的格式如下:
注:Linux 中储存文件元数据的区域就叫做 inode,每个 inode 都有一个号码,操作系统 用 inode 号码来识别不同的文件,Unix/Linux 系统内部不使用文件名,而使用 inode 号码来识别文件。