初接触CM不久,公司要求部署一个三个节点的测试集群(虚拟机)。

dn01,dn02,dn03

整个集群安装好之后才发现dn03的硬盘分的太小了,导致CM集群一些项以红色警告方式提醒,先尝试重新挂在一块硬盘,由于linux水平有限,没有成功,只好重新安装dn03。

删除CM集群上的Cluster 1 集群,然后将移除dn03,然后重装虚拟机,安装好之后,jdk、ssh等配置完毕。

我直接将dn02的 /opt/cm-5.4.7/目录拷贝到了dn03上,并启动 cloudera-manager-agent 服务。

然后重新打开cm添加集群,在以托管的主机中怎么也找不到dn03,反复重启三个节点上的cloudera-manager-agent服务,结果不是只能看到dn02,就是只能看到dn03,为什么两个不能一起出现呢?

后来在mysql的cm库中找到了原因,cm库里面有一张HOST表,这张表中存储着托管的主机,其中HOST_IDENTIFIER是主机的唯一身份标识(还没有多查资料,暂且这么认为),该表中的HOST_IDENTIFIER数据不会重复。

HOST_AUD表中存储着已启动的主机信息,在张表中三台机器的数据都可以看到,问题发现了。该表中dn02和dn03的HOST_IDENTIFIER是相同的。

我复制出来dn03的HOST_IDENTIFIER值,在/opt/cm-5.4.7中grep,发现在 /opt/cm-5.4.7/lib/cloudera-scm-agent/uuid 文件中存储着,和dn02对比一样,这就是问题的原因。

cloudera-manager-agent在首次启动时,如果没有uuid文件,它会自动创建一个,如果已有,则使用已有文件将uuid发送给cloudera-manager-server 作为该机器的标识。

所以解决这个问题,直接将uuid 文件删掉,重新启动cloudera-manager-agent 即可。

已经忘记转载链接了,如有侵权请告知删除

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐