1、Source、Channel
Source
目前Flume中Source基本是Taildir Source,它可以实现断点续传,以及监控多目录,在Flume1.6以前需要自定义Source记录每次读取的文件位置,实现断点续传。Exec Source虽然可以实时搜集数据集,但在Flume不运行或者Shell出错时,数据会丢失。而SpoolingDirectory source能监控目录,但是不能断点续传,所以推荐使用TailDir Source。
Channel
Channel有:File Channel、Memory Channel、Kafka Channel。Filie Channel数据存储在磁盘,如果发生宕机数据可以保存,缺点是传输速度较慢,适合适用于对数据传输可靠性要求高的场景,比如银行信息。Memory Channel数据储存在内存之中,优点在于传输速度快,缺点是一旦发生宕机,数据会丢失,适合对数据传输可靠性不高的场景,比如日志。Kafka Channel可以直接与Kafka连接,减少了Flume的sink阶段,提高了传输效率。
2、Event
Event是Flume数据传输的基本单元,有Header和Body两部分组成,Header用来存放Event的一些属性,为K-V结构;Body存放数据本身,