乐趣区

HDFS篇08NameNode故障处理

记住,你的记忆效率 = 线索数量 * 线索质量

NameNode 故障处理

问题场景:只配置了一个 NameNode 作为主节点,当它宕掉后如何恢复数据呢?

方法一:拷贝 SNN 数据到 NN 存储数据的目录中

  1. kill -9 NameNode 进程
  2. 删除 NameNode 存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
 rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
  1. 拷贝 SecondaryNameNode 中数据到原 NameNode 存储数据目录
 在 hadoop102 上执行,拷贝 hadoop104 的数据到这里
 
 scp -r 用户名 @hadoop104:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary/* ./name/
  1. 重新启动 NameNode 即可
hadoop-daemon.sh start namenode

方法二:使用 -importCheckpoint 选项启动 NN 守护进程,它会将 SNN 数据拷贝到 NN 数据目录中的

  1. 修改 hdfs-site.xml
<property>
 <name>dfs.namenode.checkpoint.period</name>
 <value>120</value>
</property>

<property>
 <name>dfs.namenode.name.dir</name>
 <value>/opt/module/hadoop-2.7.2/data/tmp/dfs/name</value>
</property>
  1. kill -9 NameNode 进程
  2. 删除 NameNode 存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
  1. 拷贝 SecondaryNameNode 中数据到原 NameNode 存储数据目录并删除 in_use.lock 文件
scp -r 用户名 @hadoop104:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary ./

[zhutiansama@hadoop102 namesecondary]$ rm -rf in_use.lock
  1. 导入检查点数据(等待一会 ctrl+ c 结束掉)
hdfs namenode -importCheckpoint

​ 6. 启动 NameNode

hadoop-daemon.sh start namenode

相关资料

退出移动版