我使用神经节监视hadoop。我选择指标“dfs.datanode.HeartbeatsAvgTime”来判断datanode(我的意思是datanode服务,而不是主机)是否关闭。
当数据节点运行正常时,“dfs.datanode.HeartbeatsAvgTime”仍在更改。也就是说,图中的值是可变的。
看起来像这样:
但是停止数据节点服务后,图中的值仍然保持不变。
看起来像这样:
第二张图中的值保持不变,但不为0或无穷大。因此,我无法判断datanode服务是启动还是关闭。
处理其他指标时相同。
我已经检查了神经节使用的rrd,以“rrdtool fetch”存储度量数据。关于度量的值存储在* .rrd文件中。当我检查该文件时,发现在停止datanode之后,关于度量的值也将更新。但是,值(value)并不在变。
我在rrd的官方网站上阅读了有关rrd的引用资料。他们说,如果rrd在设置的间隔之前没有收到更新日期,则rrd在* .rrd文件中写入UNKNOWN。
我认为可能有两个原因引起了这个问题。
gmetad未收到指标时的
但是我在ganglia的github的源代码中并没有找到任何证据。
那么您知道如何解决图形中的值保持不变的问题吗?还是您知道有关如何使用神经节监控hadoop集群的其他详细信息?
@戴夫·斯蒂芬斯@洛林·霍希斯坦
最佳答案
在解决问题后,我发现如果在hadoop-metrics2.properties中设置指标的dmax,则当hadoop发生故障时,神经节将不会接收任何数据,并返回UNKNOW。神经节网站上的图表将消失。当神经节+ nagios时,nagios也将返回UNKNOW状态。足以判断hadoop是向上还是向下。
dmax表示在dmax时间后,hadoop将破坏指标。