?

HDFS监控背后那些事儿,构建Hadoop监控共同体

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磁盘刷新耗时等。

HDFS监控背后那些事儿,构建Hadoop监控共同体

图1 CDH提供的HDFS监控界面

Ambari与CDH类似,它是Hortonworks公司(与Cloudera公司已合并)开源。它的扩展性要比较好,另外,它的信息可以从机器、组件、集群等不同维度展现,接近运维工程师使用习惯。

HDFS监控背后那些事儿,构建Hadoop监控共同体

图2 Ambari提供的HDFS监控界面

如果使用CDH,或者Ambari进行HDFS监控,也存在实际问题:

对应的Hadoop及相关组件版本不能自定义

不能很好的满足大规模HDFS集群实际监控需求

其他工具,如Jmxtrans目前还不能很好适配Hadoop,因此,实际的监控方案选型为:

采集:HadoopExporter,Hadoop HTTP API(说明:HDFS主要调用{domain}:{port}/jmx)

日志:通过ELK来收集、分析

存储:Prometheus

展现:Grafana,HDFS UI,Hue

告警:对接京东云告警系统

HDFS监控指标

主要指标概览

表1 HDFS主要监控指标概览

HDFS监控背后那些事儿,构建Hadoop监控共同体

黑盒监控指标

基本功能

文件整个生命周期中,是否存在功能异常,主要监控创建、查看、修改、删除动作。

查看时,需校对内容,有一种方式,可以在文件中写入时间戳,查看时校对时间戳,这样,可以根据时间差来判断是否写超时

切记保证生命周期完整,否则,大量监控产生的临时文件可能导致HDFS集群垮掉

白盒监控指标

错误

Block丢失数量

采集项:MissingBlocks

如果出现块丢失,则意味着文件已经损坏,所以需要在块丢失前,提前预判可能出现Block丢失风险(通过监控UnderReplicatedBlocks来判断)。

不可用数据节点占比

采集项:

HDFS监控背后那些事儿,构建Hadoop监控共同体

在BlockPlacementPolicyDefault.java中的isGoodTarget定义了选取Datanode节点策略,其中有两项是“节点是否在下线”、“是否有足够存储空间”,如果不可用数量过多,则可能导致选择不到健康的Datanode,因此,必须保证一定数量的健康Datanode。

HDFS监控背后那些事儿,构建Hadoop监控共同体

图4 选取可用Datanode时部分判断条件

错误日志关键字监控

部分常见错误监控(主要监控Exception/ERROR),对应关键字:

IOException、NoRouteToHostException、SafeModeException、UnknownHostException。

未复制Block数

采集项:UnderReplicatedBlocks

UnderReplicatedBlocks在数据节点下线、数据节点故障等均会产生大量正在同步的块数。

FGC监控

采集项:FGC

读写成功率

采集项:

monitor_write.status/monitor_read.status

根据Block实际读写流量汇聚计算,是对外SLA指标的重要依据。

数据盘故障

采集项:NumFailedVolumes

如果一个集群有1000台主机,每台主机是12块盘(一般存储型机器标准配置),那么这将会是1万2000块数据盘,按照机械盘平均季度故障率1.65%(数据存储服务商Backblaze统计)计算,平均每个月故障7块盘。若集群规模再扩大,那么运维工程师将耗费很大精力在故障盘处理与服务恢复上。很显然,一套自动化的数据盘故障检测、自动报修、服务自动恢复机制成为刚需。

除故障盘监控外,故障数据盘要有全局性解决方案。在实践中,以场景为维度,通过自助化的方式来实现对此问题处理。

HDFS监控背后那些事儿,构建Hadoop监控共同体

图5 基于场景实现的Jenkins自助化任务

流量

Block读、写次数

采集项:

HDFS监控背后那些事儿,构建Hadoop监控共同体

采集Datanode数据进行汇聚计算。

网络进出流量

采集项:

node_network_receive_bytes_total/ node_network_transmit_bytes_total 

没有直接可以使用的现成数据,需要通过ReceivedBytes(接收字节总量)、SentBytes(发送字节总量)来计算。

磁盘I/O

采集项:node_disk_written_bytes_total/ node_disk_read_bytes_total

延迟

RPC处理平均时间

采集项:RpcQueueTimeAvgTime

采集RpcQueueTimeAvgTime(RPC处理平均时间)、SyncsAvgTime(Journalnode同步耗时)。

慢节点数量

采集项:SlowPeerReports

相关推荐
新闻聚焦
猜你喜欢
热门推荐
  • 微软AI面试题有多难?这里有一份样卷

      究竟什么样的AI人才能被微软这样的巨头聘用呢?今天,文摘君就淘来了几道微软AI 面试题,同时给出了最基本的解答......

    06-25????来源:澎湃新闻网

    分享
  • 全球最聪明的大脑怎么看AI?他们预测了

      2017年AI领域取得了诸多成果。2018年AI又将何去何从?以下是来自世界顶级研究人员和行业领军人物对2018年AI领域发展作......

    02-20????来源:虎嗅网

    分享
  • 2017JavaScript框架战报 - React分战场

      我们来看看与React有关的软件包的生态系统。当Facebook构建React时,就有许多来自开源社区的第三方软件包。为提供完......

    02-27????来源:湖北新闻网

    分享
  • 小白学数据:教你用Python实现简单监督学

      监督学习作为运用最广泛的机器学习方法,一直以来都是从数据挖掘信息的重要手段。即便是在无监督学习兴起的近......

    03-05????来源:今日头条

    分享
  • 现代编程语言Swift、Kotlin等十大有趣功能

      最近学习了一些现代编程语言,比如Reason,Swift,Kotlin和Dart。这些编程语言提供了许多新功能,本文主要分享了我认......

    04-29????来源:祁东新闻网

    分享
  • 领域场景分析的6W模型

      组成场景的要素常常被称之为6W模型,即描写场景的过程必须包含Who,What,Why,Where,When与hoW这六个要素。......

    04-30????来源:砍柴网

    分享
  • 开源应用服务器WildFly 12发新季度交付模式

      WildFly 12 Final版本现在已经可以下载了,WildFly是一款灵活的开源应用服务器,支持开发人员构建轻量级应用程序。支持......

    05-10????来源:青岛新闻网

    分享
  • 基于Spring Cloud的微服务落地

      微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务。但如果要将微服务架构运用到生产项目上,......

    06-04????来源:广西新闻网

    分享
  • 为什么阿里工程师纷纷在内网晒代码?

      前阵子,在阿里一个小黑屋里,5名对代码有着极致追求的工程师参与阿里代码领域最高荣誉“多隆奖”的最终角逐。......

    06-08????来源:四川新闻网

    分享
  • 超级大汇总!200多个最好的机器学习、

      我把这篇文章分为了四个部分:机器学习,自然语言处理,python和数学。在每个部分中我都列举了一些主题,但是因......

    09-25????来源:洛阳新闻网

    分享
返回列表
Ctrl+D?将本页面保存为书签,全面了解最新资讯,方便快捷。