前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0519-如何解决Cloudera Manager主机页面出现重复主机异常

0519-如何解决Cloudera Manager主机页面出现重复主机异常

作者头像
Fayson
发布2019-11-27 18:52:05
1.1K0
发布2019-11-27 18:52:05
举报
文章被收录于专栏:Hadoop实操Hadoop实操Hadoop实操

1

问题重现

通过Cloudera Manager主页访问“主机”页面,发现其中一台主机有2条重复的记录,一条有角色相关信息但是心跳明显超时很久了,另外一台有心跳但是没有主机角色信息,而且所有主机都是未知状态,如下:

回到Cloudera Manager主页也发现无论是Cloudera Management Service还是集群的Hadoop服务都是未知状态。

重启Cloudera Management Service显示失败:

  • 测试环境

1.CDH6.1

2.Redhat7.4

3.采用root进行操作

2

问题解决

1.首先我们登录MySQL,并查看Cloudera Manager数据库的HOSTS表进行核对。

mysql -u root -p
use cm;
SELECT HOST_ID,NAME,IP_ADDRESS,HOST_IDENTIFIER FROM HOSTS;

Fayson的集群一共4台机器,发现确实有5台主机,并且IP为172.31.6.83有两台机器:

2.查看Cloudera Manager数据库的ROLES_AUD即角色表确认172.31.6.83有角色的HOST_ID。

MariaDB [cm]> select * from ROLES_AUD order by HOST_ID;

对应第1步的HOSTS表的数据,发现并没有HOST_ID为5的数据,所以我们主要需要处理HOST_ID为5同时IP也为172.31.6.83的数据。

3.从第1步的HOSTS表的数据记录重复的172.31.6.83主机的HOST_IDENTIFIER值。

MariaDB [cm]> SELECT HOST_ID,NAME,IP_ADDRESS,HOST_IDENTIFIER FROM HOSTS where IP_ADDRESS='172.31.6.83';

HOST_ID为1的HOST_IDENTIFIER值为5b72bbe2-b332-4aff-959d-6f705205365b

HOST_ID为5的HOST_IDENTIFIER值为2ac39f58-b166-4cd7-8b72-b718398ec02a

4.查看172.31.6.83主机的Cloudera Agent的真实UUID。

[root@ip-172-31-6-83 ~]# cd /var/lib/cloudera-scm-agent
[root@ip-172-31-6-83 cloudera-scm-agent]# cat uuid
[root@ip-172-31-6-83 cloudera-scm-agent]#

确认真实的Agent uuid与第4步中的HOST_ID为5的HOST_IDENTIFIER值一致,接下来我们开始进行处理。

5.首先停止172.31.6.83主机的Agent服务。

[root@ip-172-31-6-83 ~]# systemctl stop cloudera-scm-agent
[root@ip-172-31-6-83 ~]# systemctl status cloudera-scm-agent

6.从Cloudera Manager的“主机”页面删除没有角色的172.31.6.83主机,根据前面第2步其实我们也能判定删除的是HOST_ID为5的那条信息。

删除成功:

7.停止Cloudera Manager Server的服务

[root@ip-172-31-6-83 ~]# systemctl stop cloudera-scm-server  
[root@ip-172-31-6-83 ~]# systemctl status cloudera-scm-server

8.使用MySQL自带的命令备份CM数据库,mysqldump,这里省略,不清楚的可以自己百度。

9.将172.31.6.83主机的Agent UUID的文件中的值改为第3步骤中HOST_ID为1的HOST_IDENTIFIER值,即5b72bbe2-b332-4aff-959d-6f705205365b

[root@ip-172-31-6-83 ~]# cd /var/lib/cloudera-scm-agent
[root@ip-172-31-6-83 cloudera-scm-agent]# echo -n "5b72bbe2-b332-4aff-959d-6f705205365b" > uuid
[root@ip-172-31-6-83 cloudera-scm-agent]#

10.重启172.31.6.83主机上的Cloudera Manager Server以及Agent服务

[root@ip-172-31-6-83 ~]# systemctl start cloudera-scm-server
[root@ip-172-31-6-83 ~]# systemctl start cloudera-scm-agent

11.回到Cloudera Manager主页重启CMS服务

启动成功

12.重启集群所有服务

重启后,整个集群恢复正常:

3

总结

1.当集群的某台主机你更新了OS,或硬件配置或者进行了CDH升级,或者你手动操作修改了Agent的UUID文件都可能导致Cloudera Manager的主机页面有重复的主机显示。

2.一旦有重复主机显示,该主机其实严格意义上不属于集群的一部分了,没办法使用Cloudera Manager来管理这台主机比如重启这台机器上的相关服务。

3.Fayson本次测试模拟的有重复显示的主机刚好是CMS服务所在的主机,所以直接导致整个集群的状态不可监控,重启CMS服务也直接失败,如果是某台DataNode出现重复,不会出现这么恶劣的情况。

4.本文提供的修改Agent的UUID文件是其中的一种办法,你也可以直接修改MySQL数据库来实现,目的就是MySQL中保存的数据需要与Agent本地的UUID文件匹配。

5.注意修改Agent的uuid文件务必使用echo -n命令。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档