1)Event:
数据流的单位,数据收集,读写基本单位。
包含header body:收集的数据
2)Agent:
数据收集代理
这里可以理解为一个数据收集的服务器
一个代理包含flume的一套的组件(source channel sink)
3)三个核心组件;
Source:
数据源,需要进行收集的日志信息的来源
端口 目录 命令等等。
avro source:监听avro协议的端口,当监听的端口中有数据流入的时候会被avro source监听到。
Exec source:监听一个Linux命令,指定一个需要监听的命令,这个命令产生的数据就会被exec source监听到,进行采集。
Spooling Directory Source:监听的是一个目录,这个目录是不能有子目录的,监听当前目录下的文件的数据有变化,一旦当 前目录下的文件的数据有变化就会被spooling directory source监听到,就可以进行数据读取,一旦数据读取完成,当前的这 个文件的名字就会加一个后缀 .complete。代表当前文件的数据读取完成。
NetCat TCP source:监听TCP协议的端口,一旦端口中有数据就可以被采集。
Channel:
数据通道,临时存储读取(source)的数据信息,然后给sink使用
可以使用内存、磁盘
Memory channels:将数据存储在内存中,内存队列
Filechannel:event存储在文件中。
Sink:
数据收集的目的地
将采集的数据的最终处理
Hdfs sink:将采集的数据写入到hdfs下
Hive sink:将采集的数据写入到hive表中,
Logger sink:将我们采集的数据放在控制台打印,用于测试
Avro sink:将采集的数据写入到指定的端口中。