Flume常用Source
一、Exce Source
这个source的功能是可以使用一条Linux命令,来动态获取一个文件中的数据。
适用场景:适用于监控一个实时追加的文件
缺点:不能实现断点续传
二、Spooling Directory Source
这个source的功能是可以动态的监听一个目录,如果目录中产生新的文件,就会将新的文件进行采集,被采集的文件会被打上一个标记,之后文件再发生变化时不会再进行同步。
适用场景:适用于会产生多个文件的情况,且文件后续不会再发生变化
缺点:不适合实时追加文件的监听
- Exec和 Spooling dir对比
- Exec优点:可以监控文件内容的动态变化
- Exec缺点:只能监控一个固定的文件
- Spooling dir优点:可以监控一个目录中的多个文件
- Spooling dir缺点:不能动态监控文件的变化,只能监听文件的新增
三、TailDir Source(用的较多)
这个source可以实时监控一批文件,并记录每个文件的最新的消费问题,宕机重启后不会有重复消费问题。
适用场景:监控多个数据源,可以是目录,可以是文件,每个数据源中的每个文件都可以动态变化。且可以实现断点续传,不会出现重复消费问题。
其中,taildir_position.json这个文件保证了不会出现重复采集的功能。
四、avro Source
这个source主要用于网络协议,监听端口,实现采集端口的数据
五、kafka Source
这个source主要用于输入源是Kafka的情况
六、总结
现在一般情况下,除去一些特殊的输入源,一般都使用TailDir Source这个类型