Flume 核心组件介绍

来源:互联网 发布:网络线材厂家 编辑:程序博客网 时间:2024/05/16 18:25

flume 核心组件

Source

完成对日志数据的收集,收集完成后,分成transtion、event放到Sink或者Channel中。
Flume提供了各种Source的实现,包括
Avro Source:监控某一个端口
Exce Source:对linux命令如cat、tail等的输出进行监控
ExecSource 可以实现对日志的实时手机,但是存在Flume不运行或者指令执行出错时,将无法搜集到日志数据,即无法核证日志数据的完整行,

Spooling Directory Source:监控某个文件夹下生成的文件,若有新增文件,就把这个文件的数据读取到管道中来
1、放进去的目录不能再打开编辑。
2、不包含子目录。
flume主要是实时抓取数据。等log4j写完后,才能读取。所以不是实时的,但可以使用按分钟分割的方式分割日志文件,可以趋近实时。在实际的使用中,可以结合log4j使用。使用log4j的时候,将文件拷贝到spool的监控目录,log4j有一个TimeRolling的插件,基本实现实时监控。Flume在传完文件后,将会修改文件的后缀,变为.completed(后缀可以在配置文件中灵活指定),表示读过了。

NetCat Source:对某一个端口的监控
Syslog Tcp Source:
Syslog Udp Source:
Http Source :
HDFSSource:

我们写的东西开发完了,本省开发的系统不支持对,日志,访问tomcat记录

Sink

Sink从Channel管道中取数据,进行相应的操作,可能是存储到文件系统,数据库,或者提交到远程服务器。
Flume提供了各种sink的实现,包括
HDFS sink:1天好几G,好几百G,要放到hadoop中。
Logger sink:测试用的,控制台打印
Avro sink:一个客户端,传到另一个客户端
File Roll sink:一定时间生成一个文件
Null sink
HBase sink

Channel

主要提供一个队列的功能,对source提供中的数据进行简单的缓存。
Flume对于Channel,提供了
Memory Channel:可以实现高速的吞吐,但是无法保证数据的完整性。MemoryRecoverChannel在官方文档上已经建议使用FileChannel来替代。
JDBC Channel
File Channel:保证数据的完整性与一致性。可以将FileChannel输出目录设置成不同的磁盘,以提高效率。

0 0