Secondary NameNode目录结构
Secondary NameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
在/opt/module/hadoop-2.8.4/data/dfs/namesecondary/current这个目录中查看SecondaryNameNode目录结构。
|
edits_0000000000000000001-0000000000000000002 fsimage_0000000000000000002 fsimage_0000000000000000002.md5 VERSION |
SecondaryNameNode的namesecondary/current目录和主namenode的current目录的布局相同。
好处:在主namenode发生故障时(假设没有及时备份数据),可以从SecondaryNameNode恢复数据。
方法一:将SecondaryNameNode中数据拷贝到namenode存储数据的目录;
方法二:使用-importCheckpoint选项启动namenode守护进程,从而将SecondaryNameNode中数据拷贝到namenode目录中。
1)案例实操(一):
模拟namenode故障,并采用方法一,恢复namenode数据
(1)kill -9 namenode进程 kill-9:强制杀死
(2)删除namenode存储的数据(/opt/module/hadoop-2.8.4/data/dfs/name)
rm -rf /opt/module/hadoop-2.8.4/data/dfs/name/*
注:此时hadoop-daemon.sh stop namenode关闭NN,
然后hadoop-daemon.sh start namenode重启NN,发现50070页面启动不了
(3)拷贝SecondaryNameNode中数据到原namenode存储数据目录
cp -r /opt/module/hadoop-2.8.4/data/dfs/namesecondary/* /opt/module/hadoop-2.8.4/data/dfs/name/
(4)重新启动namenode
sbin/hadoop-daemon.sh start namenode
2)案例实操(二):
模拟namenode故障,并采用方法二,恢复namenode数据
(0)修改hdfs-site.xml中的配置,value的单位是秒,默认3600,即1小时,仅配置一台即可
|
<property> <name>dfs.namenode.checkpoint.period</name> <value>120</value> </property>
<property> <name>dfs.namenode.name.dir</name> <value>/opt/module/hadoop-2.8.4/data/dfs/name</value> </property> |
(1)kill -9 namenode进程
一定要先kill -9进程,namenode再被删除,否则就会被锁死!
(2)删除namenode存储的数据(/opt/module/hadoop-2.8.4/data/dfs/name)
rm -rf /opt/module/hadoop-2.8.4/data/dfs/name/*
略:(3)如果SecondaryNameNode不和Namenode在一个主机节点上,需要将SecondaryNameNode存储数据的目录拷贝到Namenode存储数据的平级目录。
|
[itstar@bigdata111 dfs]$ pwd /opt/module/hadoop-2.8.4/data/dfs [itstar@bigdata111 dfs]$ ls data name namesecondary |
(4)导入检查点数据(等待一会ctrl+c结束掉)
bin/hdfs namenode -importCheckpoint
(5)启动namenode
sbin/hadoop-daemon.sh start namenode
(6)如果提示文件锁了:
可以删除in_use.lock
rm -rf /opt/module/hadoop-2.8.4/data/dfs/namesecondary/in_use.lock
再次导入检查点数据(ctrl+c停止):
bin/hdfs namenode -importCheckpoint
启动namenode
查看name目录下的current,再和namesecondary下的current进行比对,发现内容是少了的。
浙公网安备 33010602011771号