💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
NameNode 故障后,可以采用如下两种方法恢复数据。 <br/> **方法一:将 SecondaryNameNode 中数据拷贝到 NameNode 存储数据的目录。** (1)kill -9 namenode 进程。 (2)删除 NameNode 存储的数据({hadoop_home}/data/tmp/dfs/name)。 ```sql [root@hadoop101 hadoop]$ rm -rf opt/install/hadoop/data/tmp/dfs/name/* ``` (3)拷贝 SecondaryNameNode 中数据到原 NameNode 存储数据目录。 集群环境中NameNode在hadoop101机器上,SecondaryNameNode在hadoop104上。 ```sql [root@hadoop101 dfs]$ scp -r hadoop@hadoop104:/opt/install/hadoop/data/tmp/dfs/namesecondary/* ./name/ ``` (4)重新启动 namenode ``` [root@hadoop101 hadoop]$ sbin/hadoop-daemon.sh start namenode ``` <br/> **方法二:使用 `-importCheckpoint` 选项启动 NameNode 守护进程,从而将SecondaryNameNode 中数据拷贝到 NameNode 目录中**。 (1)修改 hdfs-site.xml ```xml <property> <name>dfs.namenode.checkpoint.period</name> <value>120</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/install/hadoop/data/tmp/dfs/name</value> </property> ``` (2)kill -9 namenode 进程 (3)删除 NameNode 存储的数据(/opt/install/hadoop/data/tmp/dfs/name) ```sql [root@hadoop101 hadoop]$ rm -rf /opt/install/hadoop/data/tmp/dfs/name/* ``` (4)如果 SecondaryNameNode 不和 NameNode 在一个主机节点上,需要将SecondaryNameNode 存储数据的目录拷贝到 NameNode 存储数据的平级目录,并删除 in_use.lock 文件。 ```sql [root@hadoop101 dfs]$ scp -r hadoop@hadoop104:/opt/install/hadoop/data/tmp/dfs/namesecondary ./ [root@hadoop101 namesecondary]$ rm -rf in_use.lock [root@hadoop101 dfs]$ pwd /opt/install/hadoop/data/tmp/dfs [kgc@hadoop101 dfs]$ ls data name namesecondary ``` (5)导入检查点数据(等待一会 ctrl+c 结束掉) ```sql [root@hadoop101 hadoop]$ bin/hdfs namenode -importCheckpoint ``` (6)启动 namenode ```sql [root@hadoop101 hadoop]$ sbin/hadoop-daemon.sh start namenode ```