Apache Flume是一个分布式、可信任的弹性系统。
功能:
- 支持在日志系统中定制各类数据发送方,用于收集数据
- Flume提供对数据进行简单处理,并写到各种数据接收方的能力
多种数据来源:
- server log : tail -n 10000 a.log | grep fatal / warning
- http : url
- netcate : ip : port
- filesystem : 目录下,一旦有数据变化
- Console、RPC、Text、Tail、Syslog、Exec等
Flume外部架构
log server与agent是1:1,一个collector对应多个agent。然后将收集数据存入HDFS或Hbase上
Flume使用Event对象来作为传递数据的格式,是内部数据传输的最基本单元
Event有两部分:header(可有可无)和body
代理(Flume Agent)
flume内部有一个或多个Agent,每一个Agent是一个独立守护进程
Agent主要由source、channel、sink组成
- source:输入,对接各种数据源
- Channel:缓存(file,memory)
- sink:输出,对接各种存储
- 另外两个可选组件
- interceptor(拦截器)
- selector(选择器)
--复制(默认):replicating
--复用:multiplexing