了解监控原理(此处不详细介绍,google、百度了解):
简单来说:
metrics monitor、hadoop sinks ->metrics collector;
AMS (Ambari Metrics System)收集数据最终由 Metrics Collector 中的 Timeline
Server 保存到 Hbase(注意此处是ams自带的hbase而不是hbase安装服务组件) 数据库中(通过 Phoenix)
1、监控定位方法,
注意查看以下几点日志:
(1)metrics collector机器:/var/log/ambari-metrics-collector/ambari-metrics-collector.log
(2)metrics collector机器:/var/log/ambari-metrics-collector/hbase-ams-master-*.log
(3)ambari-server机器:/var/log/ambari-server/ambari-server.log
注意:collector和server启动服务进程可能不在一台机器上
2、遇见问题(总感觉Ambari监控很不稳定,而且不知道可靠度高不高,遇到问题每个人情况不一样,以个人为例):
现象:集群负载、内存使用等监控的界面无可用数据,显示不了
保存明显是hbase存在问题,当初误以为集群安装在hbase服务的数据库中,一进去hive发现没有对应的Table表,后来通过jps发现存在两个HMaster,发现另外一个是ams自带的hbase服务来存放监控数据;
仔细看日志会发现region好像挂了,加载数据读取不出来,卸载重装各种办法部分监控还是显示不了,提示跟hbase相关的错误。
发现问题最关键的一步:实时观察日志打印,而不是日志说问题出在哪,就搜索出错原因(虽然大部分场景都适合),其实因为后面打印的这种错误日志太多,没去翻安装时前面出错原因的关键点。最好重新启动安装一下,把这段操作时间的错误日志全看看,盲目尝试就像瞎猫碰死耗子,这问题我反正尝试了一遍都没效果,更换了Ambari Metrics组件配置hbase.rootdir的路径,删除了hbase.tmp.di配置路径下的数据。最后在同事的协助下才发现真正问题所在,解决掉的。
总之此问题就是:Ambari换新2.5新版本后,监控自带的hbase版本太低,jar包缺少关联的DataTieredStoreEngine类不匹配引起的问题;
解决过程:
操作步骤: