在前面介绍了我们的SecondaryNameNode是辅助管理NameNode的,那么如果NameNode出现故障,那我们如何在使用SecondaryNameNode的fsimage和edits文件进行恢复呢?下面我们就来操作下。
一、熟悉fsimage的edits文件的相关配置
首先我们需要从hdfs-core.xml文件里面找到我们配置的文件的相关目录,查看如下的参数信息
1、namenode保存fsimage的配置路径
<property> <name>dfs.namenode.name.dir</name> <value>file:///${hadoop_home}/datas/namenodeData</value> </property>
2、namenode保存edits文件的配置路径
<property> <name>dfs.namenode.edits.dir</name> <value>file:///${hadoop_home}/datas/nn/edits</value> </property>
3、secondaryNamenode保存fsimage文件的配置路径
<property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///${hadoop_home}/datas/snn/name</value> </property>
4、secondaryNamenode保存edits文件的配置路径
<property> <name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///${hadoop_home}/datas/snn/edits</value> </property>
我们知道上面几个文件之后,出现问题我们就知道如何进行故障恢复了。
故障恢复
1、提前做好NameNode和SecondaryNameNode的fsimage和edits文件夹备份。
2、故障恢复操作流程
1. 杀死namenode进程: 使⽤jps查看namenode的进程号 , kill -9 直接杀死。 2. 删除namenode的fsimage⽂件和edits⽂件。 根据上述配置, 找到namenode放置fsimage和edits路径. 直接全部rm -rf 删除。 3. 拷⻉secondaryNamenode的fsimage与edits⽂件到namenode的fsimage与edits⽂件夹下⾯ 去。 根据上述配置, 找到secondaryNamenode的fsimage和edits路径, 将内容 使⽤cp -r 全部复制到 namenode对应的⽬录下即可。 4. 重新启动namenode, 观察数据是否存在。
备注:
1、一般从SecondaryNameNode上恢复数据的话,会存在部分数据丢失的情况,这块主要是由于SecondaryNameNode同步NameNode的元数据信息是有延迟的。
2、生产上尽量做 HA,减少手动故障恢复的情况。
还没有评论,来说两句吧...