一.背景:
公司自建IDC机房,基于IDC机房构建大数据集群;需要对集群资源进行监控,集群采用的是CDH集群,采集主要分两块进行:
a.HDFS和YARN相关的指标进行采集
b.IDC机器自身的指标进行采集
注意:也许有人会有疑惑,CM界面已经提供了监控的图表,为什么还需要自己进行展示。原因在于,这些信息需要集成到内部的数据平台上面去,做成对应的数据报表,可视化的方式展示在自己的数据平台上
二.实现思路大致可以分为两种:
a.使用CM所提供的Java API去获取
b.使用CM提供的REST API去获取
其实两者本质上是一样的,CM所提供的Java API也是按照REST API那套来实现的,两者是保持一致的
核心代码如下:
三.注意:
代码中涉及到的DateUtils需要自己去进行实现 通过这部分代码可以通过传入tsquery的方式去获取对应的idc集群的metric信息;接下来的代码我们只需要通过ServiceImpl去实现对应的监控指标的获取代码即可。
如果想通过cm api与spring boot整合的,这其中还会遇到2个问题:依赖冲突问题,主要表现在jackson与cxf的冲突;通过排jar包的方式可以解决 正则解析错误,该问题为cm使用过程中的一个坑,目前仍在排查当中,具体表现形式为:
这里面有个空格,因此在编译的过程中直接会报正则解析的错误;但是我们可以发现在cm 6.x的api版本中已经没有这个问题了:
因此可以直接升级api的版本来解决该问题,但是随之带来的问题就是与线上运行的cm版本不一致(线上的版本为5.13.2),因此对于如何解决仍然需要思考;不过经过测试发现,使用cm 6.x版本的api,对于目前线上那套版本的相关指标并不影响。
第二篇文章地址:生产大数据集群资源监控--HDFS指标获取(含code)