Flume简介

Flume 是Cloudera 提供的日志收集系统,具有分布式、高可靠、高可用性等特点,对海量日志采集、聚合和传输,Flume 支持在日志系统中定制各类数据发送方,同时,Flume 提供对数据进行简单处理,并写到各种数据接受方的能力。

Flume 使用java 编写,其需要运行在Java1.6 或更高版本之上。

Flume 传输的数据的基本单位是Event,如果是文本文件,通常是一行记录,这也是事务的基本单位。Event 从Source,流向Channel,再到Sink,本身为一个byte 数组,并可携带headers信息。Event 代表着一个数据流的最小完整单元,从外部数据源来,向外部的目的地去。

Flume 运行的核心是Agent。它是一个完整的数据收集工具

含有三个核心组件分别是source、channel、sink。通过这些组件,Event 可以从一个地方流向另一个地方,如下图所示。


source 可以接收外部源发送过来的数据。不同的source,可以接受不同的数据格式。比如有目录池(spooling directory)数据源,可以监控指定文件夹中的新文件变化,如果目录中有文件产生,就会立刻读取其内容。
channel 是一个存储地,接收source 的输出,直到有sink 消费掉channel 中的数据。channel 中的数据直到进入到下一个channel 中或者进入终端才会被删除。当sink 写入失败后,可以自动重启,不会造成数据丢失,因此很可靠。
sink 会消费channel 中的数据,然后送给外部源或者其他source。如数据可以写入到HDFS 或者HBase 中。

flume 允许多个agent 连在一起,形成前后相连的多级跳。

发布了16 篇原创文章 · 获赞 10 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章