热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

转载:21生产预警平台项目之记录一个flumeng的tailf参数所诱发的血案

21生产预警平台项目之记录一个flume-ng的tail-f参数所诱发的血案原创:若泽数据流浪人若泽大数据今天ref:https:mp.weixi

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

原创: 若泽数据流浪人 若泽大数据 今天

ref:

https://mp.weixin.qq.com/s__biz=MzA5ODY0NzgxNA==&mid=2247484387&idx=1&sn=b8e289ab7c11da18dec9c54a3ca55ad6&chksm=908f298aa7f8a09cf8cd881f7ecee4562a414a963fe0e4cf7ac5954dbad8f40a0d00c749556f&mpshare=1&scene=23&srcid=10099qaXOMOiylkY0mHiwfDu#rd

一.现象:

 

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"  是能够实时输出显示的

 

 

[hdfs@hadoop-01 conf]$ cat nn1_exec_memory_avro.properties
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the custom exec source
a1.sources.r1.type = com.onlinelog.analysis.AdvancedExecSource
a1.sources.r1.command = tail -f /var/log/hadoop-hdfs/hadoop-cmf-hdfs1-NAMENODE-hadoop-01.log.out
a1.sources.r1.batchSize = 200
a1.sources.r1.hostname = hadoop-01
a1.sources.r1.servicename = namenode
# Describe the sink
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = 172.16.101.54
a1.sinks.k1.port = 4545
a1.sinks.k1.batch-size = 200
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.keep-alive = 60
a1.channels.c1.capacity = 1000000
a1.channels.c1.transactionCapacity = 600
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

 

4.google+baidu............
5.实在没办法,打开官网

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

发现这么一句话:

 

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

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

$ tail --help
-f, --follow[={name|descriptor}]

            output appended data as the file grows;

             -f, --follow, and --follow=descriptor are
            equivalent
-F         same as --follow=name --retry

而我们的log日志,是每达到200M,是要重新重命名的,比如加上序号1.,然后重新创建这个日志。
所以在tail 一个log文件的时候, 文件滚动之后这个tail -f命令,就失效了. 
-F 是--follow=name --retry的缩写, --follow=name是按照文件名跟踪文件, 可以定期去重新打开文件检查文件是否被其它程序删除并重新建立. --retry这个参数, 保证文件重新建立后,可以继续被跟踪.


三.解决方法:
于是,我果断将所有的 -f改为-F, 
重启flume进程(当然好像可以不用重启的,因为flume会每隔一段时间会读取配置文件来动态生效,不过我还是选择手动重启,立即生效),
监控一周,运行正常。


推荐阅读
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 本文探讨了在Windows系统中运行Apache服务器时频繁出现崩溃的问题,并提供了多种可能的解决方案和建议。错误日志显示多个子进程因达到最大请求限制而退出。 ... [详细]
  • 本文详细介绍了如何在Apache Kafka中进行Topic级别的配置,包括创建、修改和删除配置参数的具体步骤,并提供了详细的配置属性表。 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
  • 关于进程的复习:#管道#数据的共享Managerdictlist#进程池#cpu个数1#retmap(func,iterable)#异步自带close和join#所有 ... [详细]
  • 基于Web的Kafka管理工具Kafkamanager首次访问Web界面的详细配置指南(附图解)
    首次访问Kafkamanager Web界面时,需要对Kafka集群进行配置。这一过程相对简单,用户只需依次点击【Cluster】>【Add Cluster】,按照提示完成相关设置即可。本文将通过图文并茂的方式,详细介绍每一步的配置步骤,帮助用户快速上手Kafkamanager。 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • Kafka入门指南
    本文将详细介绍如何在CentOS 7上安装和配置Kafka,包括必要的环境准备、JDK和Zookeeper的配置步骤。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
author-avatar
有风吹过best
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有