secondary namenode会定期将fsimage和edits从namenode上拉取进行合并,且在在secondary nemenode上有副本,当namenode节点损坏后,我们可以通过这些副本来还原一定程度上的namenode。
还原namenode有两种方法:
一、将secondary namenode上的数据复制到namenode上
二、使用
测试使用方法一进行恢复:
1、Kill namenode进程
2、清空namenode下name中的fsimage和edtis文件
3、将secondary namenode下的name中的fsimage和edits复制到namenode对应文件夹中
scp -R enche02:/home/enche/software/hadoop-2.7.7/data/hadoop/dfs/secondaryname/ /home/enche/software/hadoop-2.7.7/data/name
4、启动namenode
hadoop-daemon.sh start namenode
5、访问namenode节点页面,成功
二、使用命令恢复
1、如果secondary namenode和namenode不在一个节点上需要将secondary namenode的hadoop.tmp.dir目录拷贝到namenode对应的目录下
2、执行 hdfs namenode -importCheckpoint
3、如果步骤2在执行过程中出现文件被锁的情况,需要删除name目录下的lock文件
4、启动namenode
hadoop-daemon.sh start namenode