Apache-Flume
1. 概述
Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的工具
Flume 的核心是把数据从数据源(source
)收集过来,再将收集到的数据送到指定的目的地(Sink)
。 为了保证输送的过程一定成功,再送到目的地(Sink)
之前,会先缓存数据(Channel)
,待数据真正到达目的地(Sink)
后,flume 在删除自己缓存的数据。
Flume 支持定制各类数据发送方,用于收集各类型数据;同时Flume 支持定制各种数据接收方,用于最终存储数据。一般的采集需求,通过对flume的简单配置即可实现。针对特殊场景也具备良好的自定义扩展能力。因此 Flume 可以适用于大部分的日志采集场景。
当前Flume有两个版本。Flume 0.9x 版本的统称Flume OG(original generation)
,Flume 1.X 版本的统称Flume NG(next generation)
。由于Flume NG 经过核心组件、核心配置以及代码架构重构,与Flume OG 有很大差异,使用时需要注意。 改动的另一个原因时将Flume 纳入apache 旗下,Cloudera Flume 改名为Apache Flume。
2. 运行机制
3. Flume 采集系统结构图