工作流程
1. Source
1.1. 概念
数据源,消耗外部传递给他的事件,外部源将数据按照flume Source
能识别的格式将Flume
事件发送给 flume Source
1.2. 常用 Source
1.2.1. Avro Source
监听 AVRO
端口来接受来自外部 AVRO
客户端的事件流。利用 Avro Source
可以实现 多级流动、扇出流、扇入流 等效果。另外也可以接受通过 flume
提供的 Avro
客户端发送的日志信息
1.2.2. Exec Source
监听一个指定的命令,获取一条命令的结果作为它的数据源,source
组件从这个命令的结果中取数据。常用的是tail -F [file]
指令,即只要应用程序向日志(文件)里面写数据,source
组件就可以获取到日志(文件)中最新的内容 ,EXEC
执行一个给定的命令获得输出的源,如果要使用tail
命令,必选使得file
足够大才能看到输出内容
1.2.3. Spool Source
Spool Source
监听一个指定的目录,即只要应用程序向这个指定的目录中添加新的文件,source
组件就可以获取到该信息,并解析该文件的内容,然后写入到channel
,等待sink
处理完之后,标记该文件已完成处理,文件名添加.completed
后缀。虽然是自动监控整个目录,但是只能监控文件,如果以追加的方式向已被处理的文件中添加内容,source
并不能识别;换言之,如果在被spool sourc
e监控的目录下出现了一个新文件,则立即会被处理。拷贝到spool
目录下的文件不可以再打开编辑。spool
目录下不可包含相应的子目录,即无法监控子目录的文件夹变动。
2. Channel
数据通道,是一个被动的存储,用来保持事件,直到由一个 flume Sink
消耗
3. Sink
数据汇聚点,代表外部数据存放位置。发送 flume event
到指定的外部目标