flume
- 日志收集系统、高可靠、高可用、分布式
- 可用于海量日志的采集、聚合、传输
- 可定制数据发送发和数据接收方
- 传输数据的基本单位是Event
- 1个机器是1个agent,agent中有三大组件:source、channel、sink。
- 数据流:数据源–>source–>channel–>sink–>目的地。
三大组件
source
source作为收集日志的一端,可以接入多个数据源:
Avro Source、Exce Source、SpoolingDirectory Source、NetCat Source、Syslog Source
这些数据源可以通过监听某端口获得数据,也可以通过监测某个文件或某个目录来获取最新数据等。
也可以自己写source(基于IPC或者RPC)
channel
channel作为连接source和sink、缓存数据的管道,主要有两种类型。
- Memory Channel:Events缓存在内存中,高速吞吐、但无法保证数据完整性。
- File Channel:events存到磁盘上,持久化,比MC慢,但更稳定。
sink
sink作为数据的出口,可以连接数据库、文件系统、hadoop、kafka、另一个flume的source等。