开发者社区> 问答> 正文

NameNode 故障后可以采用什么方法恢复数据?

NameNode 故障后可以采用什么方法恢复数据?

展开
收起
xin在这 2021-12-11 12:38:23 531 0
1 条回答
写回答
取消 提交回答
  • NameNode 故障后,可以采用如下两种方法恢复数据。

    方法一:将 SecondaryNameNode 中数据拷贝到 NameNode 存储数据的目录;

    kill -9 NameNode 进程 删除 NameNode 存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name) [atguigu@hadoop102 hadoop-2.7.2]$ rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*

    拷贝 SecondaryNameNode 中数据到原 NameNode 存储数据目录 [atguigu@hadoop102 dfs]$ scp -r atguigu@hadoop104:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary/* ./name/

    重新启动 NameNode [atguigu@hadoop102 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode

    方法二:使用 -importCheckpoint 选项启动 NameNode 守护进程,从而将 SecondaryNameNode 中数据拷贝到 NameNode 目录中。

    修改 hdfs-site.xml 中的 dfs.namenode.checkpoint.period 120

    dfs.namenode.name.dir /opt/module/hadoop-2.7.2/data/tmp/dfs/name

    kill -9 NameNode 进程 删除 NameNode 存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name) [atguigu@hadoop102 hadoop-2.7.2]$ rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*

    如果 SecondaryNameNode 不和 NameNode 在一个主机节点上,需要将 SecondaryNameNode 存储数据的目录拷贝到 NameNode 存储数据的平级目录,并删除 in_use.lock 文件 [atguigu@hadoop102 dfs]$ scp -r atguigu@hadoop104:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary ./

    [atguigu@hadoop102 namesecondary]$ rm -rf in_use.lock

    [atguigu@hadoop102 dfs]$ pwd /opt/module/hadoop-2.7.2/data/tmp/dfs

    [atguigu@hadoop102 dfs]$ ls data name namesecondary

    导入检查点数据(等待一会ctrl+c结束掉) [atguigu@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -importCheckpoint

    启动NameNode [atguigu@hadoop102 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode

    2021-12-11 13:03:52
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
HBase 数据备份与恢复 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载