Flume原理
Flume概述
1.Flume简介
2.FLume概述
2.1 FLume介绍
2.2 Flume运行机制
2.3 总结与思考⭐
- FlumeAnget本质是一个JVM进程,包含三个组件:Source(采集器),Chanel(缓冲通道),Sink(接受器)
- Flume-og由于代码臃肿被Flume-ng替代
3.Flume日志采集系统架构
3.1 总结与思考⭐
- 复杂结构即存在多个Agent,有两种情况,一是有多个数据源,而是有多个目的地
4.Flume的基本使用
4.1 Flume系统要求
4.2 Flume安装配置
1.Flume安装
2.Flume配置
3. 总结与思考⭐
- 先解压,再修改Flume-env.sh中和系统中的JAVA_HOME
4.3 Flume的入门和使用
1.配置Flume采集方案
2.使用指定采集方案启动Flume
3.Flume采集数据测试
4.总结与思考⭐
- 先编写配置文件,再指定配置文件启动FLumeAgent,再向监听端口发送数据5.
5.Flume采集方案配置说明
5.1 Flume Source
1. AvroSource
2.Spooling Directoty Source
3.Taildir Source
4.HTTP Source
5.总结与思考⭐
- AvroSource用于多个agent
- Spooling Directory Souce用于监听新文件采集
- Taildir Source用于监听文件新增内容采集
- HTTP Source用于POST/GET请求接受event数据
5.2 Flume Channels
1.Meory Chnanel
2.Flie Channel
3.总结与思考⭐
- MerryChannel适合更高容量吞吐,但是agent故障会丢失数据
- FileChannel一次事务提交多个event,提高吞吐量,不会因故障丢失数据
5.3 FLume Sink
1.HDFS Sink

2.Logger Sink
3.Avro Sink
4.总结与思考⭐
- 根据不通的目的地选择不同的sink
6.Flume的可靠性保证
6.1 负载均衡
6.2 故障转移
6.3 总结与思考⭐
- 为了保证Flume可靠性,将单一的sink转换为sink group,通过多个sink来实现负载均衡,或再某个sink出现问题时,进行故障转移
- load balancing sink processor(负载均衡sink处理器),让每个活跃的sink轮流/随即处理event
- failover sink processor(故障转移sink处理器),只允许一个活跃且优先级高的sink处理event
7.Flume拦截器
总结与思考⭐
- 拦截器是对event进行数据修改
- Timestamp Intercepot(时间辍拦截器),会将timestamp-时间的键值对添加到header头部,以此记录流程发生的时间
- Static Intercepot(静态拦截器):添加固定的键值对
- Search and replace interceptors(查找替换拦截器):查询并添加键值对