写点什么

hdfs namenode 的故障恢复

发布于: 3 小时前

​ 在我们的 secondaryNamenode 对 namenode 当中的 fsimage 和 edits 进行合并的时候,每次都会先将 namenode 的 fsimage 与 edits 文件拷贝一份过来,所以 fsimage 与 edits 文件在 secondarNamendoe 当中也会保存有一份,如果 namenode 的 fsimage 与 edits 文件损坏,那么我们可以将 secondaryNamenode 当中的 fsimage 与 edits 拷贝过去给 namenode 继续使用,只不过有可能会丢失一部分数据。这里涉及到几个配置选项


【namenode 保存 fsimage 的配置路径】


<!--  namenode元数据存储路径,实际工作当中一般使用SSD固态硬盘,并使用多个固态硬盘隔开,冗余元数据 -->  <property>    <name>dfs.namenode.name.dir</name>    <value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas</value>  </property>
复制代码


【namenode 保存 edits 文件的配置路径】


<property>    <name>dfs.namenode.edits.dir</name>    <value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits</value></property>
复制代码


【secondaryNamenode 保存 fsimage 文件的配置路径】


<property>    <name>dfs.namenode.checkpoint.dir</name>    <value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name</value></property>
复制代码


【secondaryNamenode 保存 edits 文件的配置路径】


<property>    <name>dfs.namenode.checkpoint.edits.dir</name>    <value>file:///export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/snn/edits</value></property>
复制代码


​ 接下来我们来模拟 namenode 的故障恢复功能


  • 杀死 namenode 进程: 使用 jps 查看 namenode 的进程号 , kill -9 直接杀死

  • 删除 namenode 的 fsimage 文件和 edits 文件

  • 根据上述配置, 找到 namenode 放置 fsimage 和 edits 路径. 直接全部 rm -rf 删除

  • 拷贝 secondaryNamenode 的 fsimage 与 edits 文件到 namenode 的 fsimage 与 edits 文件夹下面去

  • 根据上述配置, 找到 secondaryNamenode 的 fsimage 和 edits 路径, 将内容 使用 cp -r 全部复制到 namenode 对应的目录下即可

  • 重新启动 namenode, 观察数据是否存在

发布于: 3 小时前阅读数: 4
用户头像

专注于大数据技术研究 2020.11.10 加入

运营公众号:五分钟学大数据。大数据领域原创技术号,深入大数据技术

评论

发布
暂无评论
hdfs namenode的故障恢复