Flume

Flume是Apache的开源项目,是hadoop的周边组件之一。Flume-ng则是Flume改进后的新版本。

严格的讲Flume-ng是一个日志搜集、处理、存储的系统。

架构

  • source是搜集日志的前端,接受不同的日志数据格式;
  • channel 是日志的暂存地,接收 source 的输出;
  • sink是日志的输出端,消费channel里的日志输出到不同的存储设备;
  • event:flume传输的数据单元成为一个event;

特点

1. 灵活扩展性

搜集日志的格式可以多种多样,支持:Avro(一个数据序列化系统,可以将多种格式序列化为二进制数据并提供RPC实现快捷传输),syslog,JMS,Thrift,HTTP POST等,读取日志可以是:轮询目录,执行某个命令(如:tailf),也很方便扩展;

日志的输出端可以支持多种设备,可以是:文件系统、数据库、hadoop等;

Flume可以相互串联形成多层处理,传输,多路传输等,组合方式很灵活;

2. 可靠性

Flume 使用事务性的方式保证传送Event整个过程的可靠性。

source搜集的日志会暂存到channel,channel可以是文件存储,待sink消费完后(确保输出到外部设备后)删除。

3. 可恢复性

Flume的events由于暂存在channel中,channel可以是文件存储,因此可以恢复。

4. 跨平台

Flume是Java语言的开源项目,天生具有跨平台的特性。

你可能感兴趣的:(java,log,Flume)