【发布时间】:2017-04-20 11:34:12
【问题描述】:
我使用 ganglia 来监控 hadoop。我选择度量“dfs.datanode.HeartbeatsAvgTime”来判断datanode(我是指datanode服务,而不是主机。)是否关闭。
当数据节点工作正常时,“dfs.datanode.HeartbeatsAvgTime”仍在变化。也就是说,图中的值是变化的。
但我停止datanode服务后,图中的值仍然没有变化。
第二张图中的值保持不变。但该值不是0或无穷大。所以,我无法判断datanode服务是up还是down。
在处理其他指标时也是如此。
我检查了 rrd,它被 ganglia 用来通过“rrdtool fetch”存储度量数据。关于metric的值存储在一个*.rrd文件中。当我检查文件时,我发现在我停止datanode之后,关于metric的值也被更新了。但值不变。
我在rrd的官方网站上阅读了有关rrd的参考资料。他们说,如果 rrd 在之前设置的间隔之间没有收到更新日期,则 rrd 在 *.rrd 文件中写入 UNKNOWN。
我认为引发问题的原因可能有两个。
- 当 gmetad 没有收到指标时。它使用旧值更新 rrd。因此图表与旧值保持一致。
- 当 gmond 无法收集指标时,它会将旧值报告给 gmetad。
但是我在ganglia的github的源代码中并没有真正找到任何证据。
那么你知道如何解决图中的值保持不变的问题吗?或者您是否知道有关如何使用 ganglia 监控 hadoop 集群的其他详细信息?
@DaveStephens @Lorin Hochstein
【问题讨论】:
-
@Lorin Hochstein
标签: hadoop hadoop-yarn apache-zookeeper monitor ganglia