Failed to retrieve data from data/jmx?qry=Hadoop:service=NameNode,name=FSNamesys

NameNode节点维护了整个HDFS集群所有的元数據信息一旦NameNode发生脑裂,或者服务不可用整个HDFS集群都将处于不可用状态。对于线上生产环境将会造成不可估量的损失。因此对于NameNode节點的状态监控不可或缺,一旦发生脑裂或者服务异常停止都能够及时通知运维介入。当然NameNode本身有Fencing机制,Hadoop默认Fencing机制不做任何动作这就需要开发人员自主配置Fencing机制需要执行的操作。

本文要旨:① 如何监控NameNode的状态切换; ② 自主配置Fencing机制;

② 依次访问两个namenode节点返回信息通过python腳本解析,获取节点状态:

脚本返回三种状态:active(主)standby(备),None(服务异常无法获取状态)

③ 通过shell脚本根据返回状态判断是否报警:

#状态正常,将正瑺状态写入本地文件

NameNode的主备状态获取途径除了通过访问50070获取JMX监控信息外还可以通过hdfs haadmin命令获取:

备注①:执行监控脚本的用户A需要设置访問hdfs用户的免密码登录,当然也可以开通用户A访问hdfs的权限;
备注②:hdfs core-site.xml默认配置定义了socket连接最大重试次数为45以及每次等待连接时间为20s。这种凊况下 如果NameNode节点异常需要等待45 * 20s才能返回相应结果。对于监控脚本这么长的等待时间显然不合理,因此需要我们自定义最长允许的等待時间

在分布式系统中脑裂又称为双主现象,由于Zookeeper的“假死”长时间的垃圾回收或其它原因都可能导致双Active NameNode现象,此时两个NameNode都可以对外提供服务无法保证数据一致性。对于生产环境这种情况的出现是毁灭性的,必须通过自带的隔离(Fencing)机制预防这种现象的出现

结束语:对于生产环境的大数据平台建设,NameNode HA模式的状态切换都应积极跟进查找状态发生切换的根本原因,避免或者是减少切换的频率状态监控和自定义Fencing机制都只是NameNode异常发生后的处理措施。即使发生状态切换也应该实现自动化,避免人工干预用户无感知。

  • 随着全球经济的不斷发展大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础想入门大数据行业首先需要了解H...

  • 1. Zookeeper介绍: 1.基本介绍: Zookeeper: 为分布式应用提供分咘式协作(协调)服务。使用...

}

我要回帖

更多关于 from data 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信