Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
Flume核心是 Agent,一个Agent就是一个JVM,含有三个组件:source,channel,sink
source
- 负责将数据捕获后进行特殊的格式化,将数据封装在事件(event)中,然后将事件推入channel中
channel
- 连接source和sink的组件,可以看成一个数据缓冲区(数据队列),可以将事件存在内存也可以持久化存储在磁盘上, 直到sink将数据处理完
sink
- sink的作用是从channel中取出event,将其传输到最终目的地,可以向文件系统,数据库,HDFS, Kafka ,也可以给其他agant中的source接受数据
Flume框架
Flume的可靠性
- 使用事务管理的方式保证Event整个过程的可靠性。Sink必须在Event发送到下一站agent ,才能把Event从Channel中移除掉