暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Nameservice异常问题分析

大数据SRE 2018-08-28
799


1     文档编写目的

本文主要讲述通过CM禁用HA失败,导致Nameservice异常问题分析与解决。

 

测试环境:

操作系统版本为CentOS 6.8

CM和CDH版本为5.11.2

 

文章目录结构:

    1.  文档编写目的

    2.  问题描述

    3.  问题分析

    4.  总结

2     问题描述

HDFS配置异常导致禁用HDFS的High Availability(HA)操作失败,导致SecondaryNameNode没注册到nameservice中。

查看HDFS角色实例,Failover Controller被成功删除,JournalNode被保留,nameservice2没有可用的SecondaryNameNode,而HDFS中已存在的SecondaryNameNode未被配置到Nameservice中。再查看Nameservice,发现nameservice2对应的SecondaryNameNode为空,如下图所示:


因为通过CM禁用HA的操作将多个操作步骤合并在一个过程中,耦合性太高,并且没有提供回滚功能,出现这种问题只能靠自己解决。

 

3     问题分析

1、首先,将HDFS的错误配置恢复正常,错误配置可能会影响NameNode的正常启动。

2、因为执行的是禁用HA操作,JournalNode不应该存在,另外,SecondaryNameNode没有注册到nameservice2中,又无法直接删除nameservice2,所以这里将JournalNode、NameNode、SecondaryNameNode全部停止,然后删除角色实例。删除角色实例并不会删除数据,重新添加角色实例的时候,数据目录与原来保持一致即可。如果是生产集群,建议操作前备份下元数据,防止误操作造成的安全隐患。

3、点击添加角色实例按钮,添加NameNode和SecondaryNameNode。

4、为NameNode和SecondaryNameNode选择部署节点,与原角色实例部署节点保持一致,数据目录保持一致。

5、启动NameNode及SecondaryNameNode。

6、启动成功,问题解决。

7、启用HA,进一步验证,HDFS工作正常。

 

4     总结

1、HDFS参数配置异常可能会导致禁用HA失败,问题表现为SecondaryNameNode未注册到任何nameservice中,而一旦检测不到可用的SecondaryNameNode,那么就无法启动SecondaryNameNode与NameNode配对,后续禁用HA操作将无法继续进行。

2、CM将启用/禁用HA的多个操作合并在一个过程中,优点是自动化部署,用户无需关心启用HA的细节操作,缺点是耦合性太高,中间过程出错将导致整个操作失败,但是没有提供操作回滚(RollBack)功能,如果不具备一定技术功底,很难靠自己解决此类问题。


 



When your talent can’t support your ambition,

You should calm down and learn.
When your ability cannot realize you dreams,
You should practice with all your heart.
Ask yourself,
What kind of life you pursue.




文章转载自大数据SRE,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论