Flume的定义
Flume 是一个分布式的、高可靠的、高可用的将大批量的不同数据源的日志数据收集、聚合、移动到数据中心(HDFS)进行存储的系统。即是日志采集和汇总的工具。
Flume的优势
可以高速采集数据,采集的数据能够以想要的文件格式及压缩方式存储在HDFS上。 事务功能保证了数据在采集的过程中数据不丢失。 部分 Source 保证了 Flume 挂了以后重启依旧能够继续在上一次采集点采集数据,真正做到数据零丢失。
Flume的组成
- Source(源端数据采集):Flume 提供了各种各样的 Source 、同时还提供了自定义的 Source。
- Channel (临时存储聚合数据):主要用的是Memory Channel和 File Channel(生产最常用),生产中 Channel 的数据一定是要监控的,防止Sink挂了,撑爆Channel。
- Sink(移动数据到目标端):如HDFS、KAFKA、DB以及自定义的 Sink。
Flume的架构
Agent配置使用案列
- Flume 的使用其实就是 Source、Channel、Sink 的配置。
- Agent=Source+Channel+Sink,其实 Agent 就是 Flume 的配置文件。
- 一个配置文件可以配置多个 Agent 的。
- Event:Flume 数据传输的最小单位,一个 Event 就是一条记录,由 Head 和 Body两个部分组成,Head 存储的是管道,Body 存储的是字节数组。