NN那么重要, 虽然可以由2NN进行Fsimage, editslog或者CheckPoint的数据恢复,但是还是不保险,因为/opt/module/hadoop-2.7.2/data/tmp/dfs下面仅有一个name目录(和data目录).
实际上NameNode的本地目录可以配置成多个,且每个目录的内容相同,这样就更有HA; (挂一个另一个自动切换这里先不写)
在
etc/hadoop/hdfs-site.xml增加:1
2
3
4<property>
<name>dfs.namenode.name.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/name1,file:///${hadoop.tmp.dir}/dfs/name2</value>
</property>[lei@hadoop100 hadoop-2.7.2]$ xsync etc/hadoop/, 前提是已经写了同步脚本和ssh免密登录;[lei@hadoop100 hadoop-2.7.2]$ stop-dfs.sh;[lei@hadoop101 hadoop-2.7.2]$ stop-yarn.sh; 停止了集群;删除所有产生的数据:
1
2
3
4
5[lei@hadoop100 hadoop-2.7.2]$ rm -rf data/ logs/
[lei@hadoop101 hadoop-2.7.2]$ rm -rf data/ logs/
[lei@hadoop102 hadoop-2.7.2]$ rm -rf data/ logs/
...
[lei@hadoop149 hadoop-2.7.2]$ rm -rf data/ logs/[lei@hadoop100 hadoop-2.7.2]$ bin/hdfs namenode -format再次启动集群:
1
2[lei@hadoop100 hadoop-2.7.2]$ sbin/start-dfs.sh
[lei@hadoop101 hadoop-2.7.2]$ sbin/start-yarn.sh[lei@hadoop100 hadoop-2.7.2]$ cd data/tmp/dfs/看到:
进入目录中发现name1/和name2完全相同, 所以说就是完全的备份。不过也只有namenode所在的node上面有这个