gracejpw1117

2020-07-07   阅读量: 1307

大数据

Flume常用source类型

扫码加入数据分析学习群

flume流动模型

image.png

Flume常用source类型

1、Avro 类型的Source:

监听Avro 端口来接收外部avro客户端的事件流。avro-source接收到的是经过avro序列化后的数据,然后 反序列化数据继续传输。所以,源数据必须是经过avro序列化后的数据。利用 Avro source可以实现多级流动、扇出流、扇入流等效果。接收通过flume提供的avro客户端发送的日志信息。

是flume的第一种数据来源,可以监听IP和端口,并不一定是本机的IP,可以监听其他机器的IP和port,用于获取数据,需要指定type,bind,以及port,其他都可以使用默认配置,而且可以配置拦截哪些IP的请求,对其不进行监听;

2、Exec类型的Source:

可以将命令产生的输出作为源

a1.sources.r1.command=ping 192.168.234.163 要执行的命令

可以运行指定的Unix命令,然后该命令会一直执行,读取文件,作为flume数据的来源;需要配置相应的channel,type,以及运行的命令;本方式不保证数据一定能够输送到channel,如果出现问题,则数据可能丢失;在这种条件下,建议使用Spooling Directory等其他手段,保证数据传输;

3、Taildir Source

监控指定的多个文件,一旦文件内有新写入的数据,就会将其写入到指定的sink内,本来源可靠性高,不会丢失数据,建议使用;但目前不适用于Windows系统;其不会对于跟踪的文件有任何处理,不会重命名也不会删除,不会做任何修改,这点比Spooling Source有优势;目前不支持读取二进制文件,支持一行一行的读取文本文件;在实时数据处理中,可以用该方式取代Exec方式,因为本方式可靠性高。

4、Spooling Directory类型的 Source:

将指定的文件加入到“自动搜集”目录中。flume会持续监听这个目录,把文件当做source来处理。注意:一旦文件被放到“自动收集”目录中后,便不能修改,如果修改,flume会报错。此外,也不能有重名的文件,如果有,flume也会报错。

a1.sources.r1.spoolDir=/home/work/data 读取文件的路径,即"搜集目录"

常用于离线数据处理,允许用户把文件放到磁盘上Spooling的目录,然后监控指定目录,一旦出现新的文件,就会解析新文件的内容,传输到定义的sink中,传输过程中的解析逻辑可以自行指定,如果文件读取完毕之后,文件会重命名,或者可选择删除;可靠性较强,而且即使flume重启,也不会丢失数据,为了保证可靠性,只能是不可变的,唯一命名的文件可以放在目录下,可以通过log4j来定义日志名称,这样基本不会重名,而且日志文件生成之后,一般来说都不会更改;

5、NetCat Source:

一个NetCat Source用来监听一个指定端口,并接收监听到的数据。把传入的每一行文本都作为event传入sink中,可以通过nc -k -l [host] [port]来作为外部数据来源,flume可以通过此种来源进行监听;

6、Kafka Source

支持从Kafka指定的topic中读取数据。

7、Sequence Generator Source --序列发生源:

一个简单的序列发生器,不断的产生事件,值是从0开始每次递增1。主要用来测试。


添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
19.5520 4 2 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子