NameNode故障处理

NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode,前提集群在搭建过程配置过SecondNameNode.

  1. 故障模拟,kill掉NameNode

kill -9 1715
  1. 删除NameNode存储数据

rm -r /home/briup/software/data/hadoop/hdfs/nn/*
  1. NameNode启动,会发现无法启动

hadoop-daemon.sh  start namenode
  1. 解决方案,将SecondNameNode节点中的nn目录下的内容远程复制到主节点nn下

scp -r briup@192.168.174.137:/home/briup/software/data/hadoop/hdfs/nn/*    /home/briup/software/data/hadoop/hdfs/nn/ 
  1. 重新启动NameNode

hadoop-daemon.sh  start namenode
  1. 测试,随意上传文件到集群

基于SecondNameNode恢复主节点元数据,可能导致其中某个时间段写入集群的数据出现缺失
数据损坏
  1. 查看当前各个节点数据块




  1. 同时删除master和slave两个节点的数据块

rm -r blk_1073741827  blk_1073741827_1003.meta
  1. 关闭Hdfs集群

stop-dfs.sh
4.启动Hdfs集群
start-dfs.sh
5.查看master和slave节点的数据块,会发现删除的数据块集群会基于现有数据块恢复


如果其中数据块不是缺失而是损毁,解决方案为删除存在问题的数据块或者从其他节点同步复制该数据块到本机

最后修改: 2023年12月28日 星期四 17:18