5 ll参数 mark_21生产预警平台项目之记录flume-ng的tail -f参数所诱发的血案

一.现象

flume收集-->flume聚合-->kafka-->spark streaming+spark sql-->influxdb-->grafana

  1. 所有进程都是 后台运行的;
  2. 运行进程,当时整套流程都是ok的;
  3. 但是,过一段时间,发现grafana的图表没有数据展示了!!!

二.排查:

1.检查 spark streaming+spark sql的计算的log,发现一直打印“No cdh role logs in this time interval” ;

那么可以推断没有日志过来

2.检查kafka集群是否正常?

通过kafka manager的web查看topic,可以看到集群正常,但是

Bytes in /sec 这一行都是0,表明flume聚合节点 没有数据输出到kafka集群。

3.难道我的flume收集节点的进程有异常???

a.检查flume进程还在 和 后台运行的 nohup.out日志 没有发现异常;

b.难道监控的那个日志,不存在吗? 然后 ll 命令查看一下,发现存在的哇。

c.检查我的flume参数文件配置,初步检查没有发现异常,手工执行 这个命令"tail -f /var/log/hadoop-hdfs/hadoop-cmf-hdfs1-NAMENODE-hadoop-01.log.out" 是能够实时输出显示的

75ef9e5050cde3511b699c19497630bb.png

4.google+baidu............

5.实在没办法,打开官网

https://flume.apache.org/FlumeUserGuide.html#exec-source

发现这么一句话:

e0fb4dd7f405995e88f552e0821efd84.png

Parameter -F is better in this case than -f as it will also follow file rotation

然后我发现用的是tail -F(是大写),而我们运维,dba人员习惯用tail -f ,于是我去查看命令帮助发现这两者的差别。

62219e0e34fed0ad0040656ecd4a5c2a.png

而我们的log日志,是每达到200M,是要重新重命名的,比如加上序号1.,然后重新创建这个日志。

所以在tail 一个log文件的时候, 文件滚动之后这个tail -f命令,就失效了.

-F 是--follow=name --retry的缩写, --follow=name是按照文件名跟踪文件, 可以定期去重新打开文件检查文件是否被其它程序删除并重新建立. --retry这个参数, 保证文件重新建立后,可以继续被跟踪.

三.解决方法:

于是,我果断将所有的 -f改为-F,

重启flume进程(当然好像可以不用重启的,因为flume会每隔一段时间会读取配置文件来动态生效,不过我还是选择手动重启,立即生效),

监控一周,运行正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值