一、Flume概念
中文官方文档:https://flume.liyifeng.org/
1.Flume介绍
1、是一个分布式、可靠的、高可用的日志数据采集框架
2、具有数据流的体系结构
3、具有可调整的可靠性和容错性
4、是Hadoop生态中的一个组件
2.Flume设计
1、Flume的最小运行单元是Agent,三大组件:Source,channel,Sink
2、Flume在运行Agent时候,会占用JVM
3、Flume组件
- Source:作用是与数据源进行交互,采集数据,封装成Event,传给Channel
- Event:采集的数据,对数据封装的对象,Event的结构是键值对,键值对用Header来表示,内部封装Body
- channel:将Source传输的Event进行缓存,传输到Sink
- Flow:Event的传输抽象对象
- interceptor(拦截器):对Source或Sink 进行数据拦截过滤
- Selector(选择器):用于Source,可以将不同的Event分发到不同的Channel中
- Sink:接收Channel传过来的Event,然后下沉到对应的储存系统中
- Client:客户端,启动的用户
3.数据模型
- 单一数据模型
整个数据流为
Web Server --> Source --> Channel --> Sink --> HDFS
- 多数据流模型
- 多 Agent 串行传输数据流模型
- 多 Agent 汇聚数据流模型
- 单 Agent 多路数据流模型