Namenode元数据损坏恢复

namenode无数据损坏一般是磁盘损坏,或者是其它操作导致namenode数据丢失。如果发生文件损坏或者丢失,有如下两种方法可以恢复。前提是有secondarynamenode

1、Namenode所在机器服务正常

如果namenode所在机器服务正常,只是磁盘损坏,或者数据丢失。则可以此方法。

在namenode机器上(现网为132.37.8.136)操作以下步骤:

1、如果hadoop进程不存在,先启动start-all.sh。如果存在直接执行后面操作

2、namenode镜像所在的目录下(现网为/hadoopdata/data)内容清空。

3、执行 hadoop namenode -importCheckpoint命令(界面可能出去一些错误日志)

4、stop-all.sh

5、执行jps查看有没有组件存在(如 namenode等),如果有kill -9 强行停止。

6、start-all.sh  在界面上即可查看到相关信息

 

2、 Namenode所在机器服务异常

如果namenode所在机器出现问题(如 无法开机、网络有故障、硬件故障等导致此台机器不能再继续使用)。此时需要将namenode替换成其它机器。

1、停掉Hadoop及相关集群
2、备份secondarynamenode所在机器上dfs.name.dir所指向的目录(/hadoopdata/data)及文件
3、修改集群每一台机器上$HADOOP_HOME/conf/下配置文件
 •修改core-site.xml中fs.default.name,将原hostname改为新主机hostname
 •修改mapred-site.xml中mapred.job.tracker,将原hostname改为新主机hostname
 •检查slaves文件和master文件(因为很多时候是从原集群中剥离一台机器,所以要特别注意是否有遗漏)
4、建立新Namenode到其自身及其他Datanode节点间的互信
5、 将第2步中备份的文件拷贝到新Namenode节点,且按照原Namenode文件结构放置文件(需要将secondarynamenode机器上复制的dfs文件夹下的namesecondary改为name)。
6、将第3步中修改后的配置文件分发到其他Datanode节点(也可以手动修改其他机器)
7、 start-all.sh启动HDFS,查看NameNode、SecondaryNameNode和各个DataNode状态是否正常

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值