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上面有这个