目录
1. Flume定义
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。
Flume基于流式架构,灵活简单。
2. 用户指南
http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html
3. 关键结构描述
3.1 Agent
Agent是一个JVM进程,它以事件的形式将数据从源头送至目的。
Agent主要有3个部分组成,Source、Channel、Sink
3.2 Source
Source是负责接收数据到Flume Agent的组件。
Source组件可以处理各种类型、各种格式的日志数据,
包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。
3.3 Sink
Sink不断地轮询Channel中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个Flume Agent。
Sink组件目的地包括hdfs、logger、avro、thrift、ipc、file、HBase、solr、自定义。
3.4 Channel
Channel是位于Source和Sink之间的缓冲区。因此,Channel允许Source和Sink运作在不同的速率上。Channel是线程安全的,可以同时处理几个Source的写入操作和几个Sink的读取操作。
Flume自带两种Channel:Memory Channel和File Channel