NameNode故障处理
NameNode故障后,可以采用如下两种方法恢复数据。
在此之前需要启动SecondaryNameNode节点(和NameNode节点不要放到一台服务器上,影响性能)
配置hdfs-site.xml文件
<property> <name>dfs.namenode.secondary.http-address</name> <value>192.168.1.149:50090</value> </property>
hdfs --daemon start secondarynamenode
方法一:将SecondaryNameNode中的数据拷贝到NameNode存储数据的目录。
1、kill -9 NameNode进程
2、删除NameNode存储的数据(${hadoop.tmp.dir}/dfs/name)
3、拷贝SecondaryNameNode中的数据到元NameNode存储数据的目录
4、重新启动NamenNode
方法二:使用-importCheckpoint选项启动NameNode守护进程,从而将SecondaryNameNode中数据拷贝到NameNode目录中。
1、修改hdfs-site.xml中的
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>120</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>${hadoop.tmp.dir}/dfs/name</value>
</property>
2、kill -9 NameNode进程
3、删除NameNode存储的数据(${hadoop.tmp.dir}/dfs/name)
4、如果SecondaryNameNode不和NameNode在一个主机节点上,需要将SecondaryNameNode存储数据的目录拷贝到NameNode存储数据的平级目录,并删除in_use.lock文件
5、导入检查点数据(等待一会ctrl+c结束掉)
6、启动NameNode