重新安装cloudera-manager接管已有集群
由于数据库数据丢失导致CDH集群无法使用,这时hadoop等集群可能在正常运行 但无法通过cloudera-manager来进行管理,需要重新安装cloudera-manager来接管之前的集群并恢复数据。
解决办法:
关闭service 和 agent服务
保证数据库运营正常
在数据库中重新创建所有库和表
重新安装cloudera-manager
重新安装CDH(集群部署要和之前的保持一直,这是能恢复数据的关键)
具体步骤:
1. 停掉server和所有的agent
2. 执行脚本 重建数据库
cd /opt/cloudera-manager/cm-5.3.6/share/cmf/schema/
./scm_prepare_database.sh mysql -h n1 -utemp -ptemp --scm-host n1 scm scm scm
格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server 服务器
INFO Successfully connected to database
执行成功
3. 启动server和agent并检查日志,这时如果之前的集群处在运行状态,启动时会自动停止之前的所有集群
4.打开cm管理界面,登录后重新安装cdh(关键步骤)
选择机器(与之前的机器保持一致)
这里不用修改 直接默认选项
继续后等待安装完成
激活后点击继续,到这一步后点击左上角返回主页
安装Activity Monitor,需要为它创建一个数据库,这里选到MySQL去创建数据库
创建数据库 create database ACTIVIMONTOR default character set utf8;
再回到web继续添加Activity Monitor
填写数据库机器,刚刚建好的数据库名称,用户名以及密码 测试连接
如果这里报驱动错误,连接失败,需要把MySQL驱动复制到/usr/share/java/ 下并改名 mysql-connector-java.jar(名字必须要改)
连接后一直继续----完成
添加服务
这里根据情况选择自己之前安装的服务一次进行恢复,以hdfs为例(这里的机器部署尽量和接管的那个集群安装位置完全一直,否则数据可能会恢复不了)
经过测试SecondaryNameNode、datanode不与接管的集群相同,数据也能恢复,以防外一,所有的配置尽量保持一致。
如果接管的hdfs集群配置了HA,因为安装时不能直接安装HA模式,这里namenode安装的机器要选择那个集群第一次安装时的机器(重点)
例如接管的集群安装分布如下
namenode1 n1(首次安装的机器)
namonode2 n2(集群安装好后升级到HA配置的机器)
datanode n1,n2,n3
这时要选择安装到n1上而不是n2
如果这里选错了,可能会导致启动失败并报一下错误
这时需要删掉这个集群重新添加服务
这里根据具体情况修改,如果之前安装的就是默认的那就不用改
显示格式化失败,是因为之前的集群已经格式化过了,直接返回首页
选择重启hdfs集群
所有服务已经正常启动,这里有个警告是因为只安装了两个datanode
打开webUI验证数据是否完整(之前创建的test目录都还在)
5. 恢复HDFS高可用模式(停止服务,修改 JournalNode和namenode目录)
如果不配置namenode目录会导致linux下无法使用hadoop命令
启用HA
配置服务安装的节点(与接管的集群保持一直)--继续 --等待安装完成
--继续
这里 NameNode 格式化失败是正常的,直接继续--完成
n2已经添加完成