第七周 第3章 Flume出神入化篇
各种自定义组件
1 | 咱们前面讲了很多组件,有核心组件和高级组件 |


1 | 自定义channel的内容目前还没完善,如果你确实想自定义这个组件,就需要到Flume源码中找到目前支持的那些channel的代码,参考着实现我们自定义的channel组件。 |
Flume优化
1 | 1. 调整Flume进程的内存大小,建议设置1G~2G,太小的话会导致频繁GC |
1 | 使用jps查看目前启动flume进程 |
1 | 在这里主要看YGC YGCT FGC FGCT GCT |
修改Flume进程内存
1 | 如果需要调整Flume进程内存的话,需要调整 flume-env.s h脚本中的 JAVA_OPTS 参数 |
一台机器多个agent时
1 | 在一台服务器启动多个agent的时候,建议修改配置区分日志文件 |
以bigdata04机器为例:
复制conf-failover目录,以后启动sink的failover任务的时候使用这个目录
修改 log4j.properties中的日志记录级别和日志文件名称,日志文件目录可以不用修改,统一使用logs目录即可。
[root@bigdata04 apache-flume-1.9.0-bin]# cp -r conf/ conf-failover
[root@bigdata04 apache-flume-1.9.0-bin]# cd conf-failover/
[root@bigdata04 conf-failover]# vi log4j.properties
.....
flume.root.logger=WARN,LOGFILE
flume.log.dir=./logs
flume.log.file=flume-failover.log1 | [root@bigdata04 apache-flume-1.9.0-bin]# nohup bin/flume-ng agent --name a1 --conf conf-failover --conf-file xxxx |

1 | [root@bigdata04 apache-flume-1.9.0-bin]# cd logs/ |
Flume进程监控
1 | Flume的Agent服务是一个独立的进程,假设我们使用source->channel->sink实现了一个数据采集落盘的功能,如果这个采集进程被误操作干掉了,这个时候我们是发现不了的,什么时候会发现呢? |
1 | 所以针对这些存在单点故障的进程,我们都需要添加监控告警机制,最起码出问题能及时知道,再好一点的呢,可以尝试自动修复重启。 |
编写监控相关程序
配置文件
1 | [root@bigdata04 myconfFile]# vim monlist.conf |
进程启动脚本
1 | [root@bigdata04 myconfFile]# vim startExample.sh |
监控脚本
1 | [root@bigdata04 myconfFile]# vim monlist.sh |
设置定时检查
1 | 注意:这个需要定时执行,所以可以使用crontab定时调度 |