一、背景
同事手贱,不小心 执行 rm -rf /* ,5秒钟内关闭。但是系统基本坏掉 ,cdh直接down机。 ls 、cd、which 、,,,,各种命令用不了。阿里云服务器没有快照。终端连接不上。可以ping通。。。。不说了。没办法。被删除的节点01号机器有sever、agent、Namenode,cdh的元数据库在05号机器、snn在02上(偷偷窃喜,因为cdh为非ha)
只能初始化,重点是怎么把hdfs的数据恢复。妈的。蛋疼。。。。
二、操作
1、初始化01节点或者弄一个新节点
2、按cdh安装server节点的方式配置所以的基本操作
3、在当前节点安装server、agent,并且配置
指向元数据库,具体参考当初新建cdh的元数据库的时候执行scm_prepare_database.sh的时候的配置信息),
我的当初是这样的:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm -hbj-xx.com-05 -uroot -pxxxx123 --scm-host xx-xx.com-01 scm scm scm
01server上执行: vi /etc/cloudera-scm-server/db.properties
vi /etc/cloudera-scm-agent/config.ini
4、配置httpd
yum -y install httpd createrepo
systemctl start httpd && systemctl enable httpd
cd /var/www/html/cm6/6.2.0/ && createrepo .
5、启动server、agent 登录CM
6、关闭所有服务
7、删除绑定的节点(坏了的机器)、remove from。。。
8、添加节点、注意选择自己的本地源
8、安装对应的服务
三、元数据恢复
1、关闭hdfs、格式化namenode,删除nn的/dfs/nn/下除了seen_txid和VERSION之外的所有文件,然后从 snn拷贝数据到nn:
scp -r /dfs/snn/edi* root@xxx.com-01:/dfs/nn/current/
scp -r /dfs/snn/fs* root@xxx.com-01:/dfs/nn/current/
2、修改nn下VERSION blockpoolID为dn上的数据块池id(如BP-2086226209-172..........)
3、修改所有dn上的namespaceID为nn上的namespaceID:
vi /dfs/dn/current/BP-193223033xxxx/current/VERSION
4.重启集群
过程大概就这样吧。。。。