Flume,日志收集系统

Flume是Cloudera提供的一个高可用、高可靠、分布式海量日志采集、聚合、传输的系统。设计Flume的宗旨是向Hadoop批量导入基于事件的海量数据。Flume支持在日志系统中定制各类数据发送方,用于收集数据,同时Flume具有对数据进行简单处理并写到各种数据接收方的功能。举例:利用Flume从一组WEB服务器中接收日志文件,然后将这些日志文件中的日志事件转移到一个新的HDFS汇总文件中以做进一步的处理,其终点通常为HDFS。

Flume采用三层架构,分别为①Agent(代理) ②Collector(收集器) ③Storage(存储器),每一层都可以水平扩展。在这三个层次中,Agent和Collector均由Master统一管理,进行统一监控和维护,并且Master可以有多个(用ZooKeeper进行管理和负载均衡),能有效的避免单点故障。

在使用Flume时,需要运行Flume代理(Agent),因为Flume由一组以分布式拓扑结构相互连接的代理组成。Flume代理是由持续运行的Source(数据源)、Sink(数据目标)、Channel(连接数据源和数据目标的渠道)所构成的JAVA进行。

在实际应用中,可以采用多Agent串联的方式,也可以采用多Agent合并(并联)的方式,还可以对单一Source进行多种处理(即一个Source有多个Channel和Sink),多种使用模式可以挑选。