Flume作为现在最常用的日志收集工具之一,目前已经更新到了1.8.0版本,我们以最新版本开始进行我们的学习。整个学习过程以官方文档为主,辅助是参考了SteveHoffman编写的《Flume日志收集与MapReduce模式》一书。
首先要明确几个定义: Source、Channel、Sink
Source:源;表示我们收集日志的数据源
Channel:通道;表示数据传输过程中途径的通道,我们可以在源到Sink中间进行一些处理操作
Sink:目的地;表示我们需要最终要将收集到的日志输出到的地方
Flume官方支持的几种常见Source的实现:(这里面我只详细写了我应用过/测试过的Source类型)
- Avro Source:Avro Netty RPC event source
- exec Source:Execute a long-lived Unix process and read from stdout
- Thrift Source
- JMS Source
- Spooling Directory Source:
- Taildir Source
- Twitter 1% firehose Source
- Kafka Source
- NetCat TCP Source
- NetCat UDP Source
- Sequence Generator Source
- Syslog Sources
- HTTP Source
- Stress Source
- Legacy Sources
- Custom Source
- Scribe Source
Flume官方支持的几种常见Sink的实现:
- Flume Sinks
- HDFS Sink
- Hive Sink
- Logger Sink
- Avro Sink
- Thrift Sink
- IRC Sink
- File Roll Sink
- Null Sink
- HBaseSinks
- HBaseSink
- AsyncHBaseSink
- MorphlineSolrSink
- Elast