记住,你的记忆效率 = 线索数量 * 线索质量
NameNode 故障处理
问题场景:只配置了一个 NameNode 作为主节点,当它宕掉后如何恢复数据呢?
方法一:拷贝 SNN 数据到 NN 存储数据的目录中
- kill -9 NameNode 进程
- 删除 NameNode 存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
- 拷贝 SecondaryNameNode 中数据到原 NameNode 存储数据目录
在 hadoop102 上执行,拷贝 hadoop104 的数据到这里
scp -r 用户名 @hadoop104:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary/* ./name/
- 重新启动 NameNode 即可
hadoop-daemon.sh start namenode
方法二:使用 -importCheckpoint 选项启动 NN 守护进程,它会将 SNN 数据拷贝到 NN 数据目录中的
- 修改 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>
- kill -9 NameNode 进程
- 删除 NameNode 存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
- 拷贝 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
- 导入检查点数据(等待一会 ctrl+ c 结束掉)
hdfs namenode -importCheckpoint
6. 启动 NameNode
hadoop-daemon.sh start namenode
相关资料