Apache Flume 是一个分布式的,可靠的,可用的,可从许多不同的数据来源聚合和移动大量日志数据的高效数据收集系统.flume的用途并不仅限于日志数据的收集,由于数据源是可定制的,flume可以用于运输网络流量数据,社交媒体数据,和几乎任何数据源所产生的大量数据
Flume的架构主要有一下几个核心概念:
Event:最基本的数据传输单元。
Agent:一个独立的Flume进程,包含组件Source、Channel、Sink
Source:用来消费传递到该组件的Event
Channel:中转Event的一个临时存储,保存有Source组件传递过来的Event
Sink:从Channel中读取并移除Event,将Event传递到Flow Pipeline中的下一个Agent(如果有的话)
数据流动模型
flume source组件 接收来自例如web server这样的外部源传递来的events ,这些外部源按照对应source组件可以识别的格式发送events到flume。source接收的event可以发送给一个或多个channel,channel会存储这些events直到sink来消费。sink最终将event写入hdfs或本地文件进行持久化换或者作为一个新的数据源将events写入下一个agent
flume的安装与使用可以参考我的另一篇文章flume入门例子