在主namenode发生故障时(假设没有及时备份数据),可以从SecondaryNameNode恢复数据。
- 方法一:将SecondaryNameNode中数据拷贝到namenode存储数据的目录;
模拟namenode故障,并采用方法一,恢复namenode数据
1.kill -9 namenode进程(jps查看进程)
2.删除namenode存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
3.拷贝SecondaryNameNode中数据到原namenode存储数据目录
scp -R /opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary/* /opt/module/hadoop-2.7.2/data/tmp/dfs/name/
4.重新启动namenode
sbin/hadoop-daemon.sh start namenode
访问web,此时进入安全模式,完成后才能进行操作
- 方法二:使用-importCheckpoint选项启动namenode守护进程,从而将SecondaryNameNode用作新的主namenode。
模拟namenode故障,并采用方法二,恢复namenode数据
修改hadoop102的hdfs-site.xml,然后分发给集群,并启动
//检查点的时间