HDFS监控挑战
-
HDFS是Hadoop生态的一部分,监控方案不仅需适用HDFS,其他组件如Yarn、Hbase、Hive等,也需适用
-
HDFS API提供的指标较多,部分指标没必要实时采集,但故障时需能快速获取到
-
Hadoop相关组件的日志,比较重要,如问题定位、审计等
-
监控方案不仅能满足监控本身,故障定位涉及指标也应覆盖
Hadoop监控方案
Hadoop监控数据采集通过HTTP API,或者JMX。实际中,用到比较多的产品主要有:CDH、Ambari,此外,还有部分工具,如Jmxtrans、HadoopExporter(用于Prometheus)。
CDH为Cloudera公司开源的一款集部署、监控、操作等于一体的Hadoop生态组件管理工具,也提供收费版(比免费版多提供数据备份恢复、故障定位等特性)。CDH提供的HDFS监控界面在体验上是非常优秀的,是对HDFS监控指标深入发掘之后的浓缩,比如HDFS容量、读写流量及耗时、Datanode磁盘刷新耗时等。
图1 CDH提供的HDFS监控界面
Ambari与CDH类似,它是Hortonworks公司(与Cloudera公司已合并)开源。它的扩展性要比较好,另外,它的信息可以从机器、组件、集群等不同维度展现,接近运维工程师使用习惯。
图2 Ambari提供的HDFS监控界面
如果使用CDH,或者Ambari进行HDFS监控,也存在实际问题:
-
对应的Hadoop及相关组件版本不能自定义
-
不能很好的满足大规模HDFS集群实际监控需求
其他工具,如Jmxtrans目前还不能很好适配Hadoop,因此,实际的监控方案选型为:
-
采集:HadoopExporter,Hadoop HTTP API(说明:HDFS主要调用http://{domain}:{port}/jmx)
-
日志:通过ELK来收集、分析
-
存储:Prometheus
-
展现:Grafana,HDFS UI,Hue
-
告警:对接京东云告警系统
HDFS监控指标
主要指标概览
表1 HDFS主要监控指标概览