NameNode格式化——组件恢复,数据丢失

NameNode格式化——组件恢复,数据丢失

  • 前情提要
  • 过程记录
    • 准备工作
      • 停止HDFS进程
      • 删除数据
      • 删除日志和临时目录
      • 启动JournalNode服务
    • 格式化HDFS
      • 执行NameNode格式化
      • 恢复Standby NameNode
      • 启动Standby NameNode
    • 恢复依赖服务
  • 小结

前情提要

近段时间测试环境被研发整了一个特别离谱的事情,因为HDFS重启没启动起来,直接执行了format操作,大言不惭说的是百度这么说的,过了年以后我上环境看的时候,发现环境直接不能用了,然后启动也启动不起来,项目经理追着维护人员恢复环境,对开发把环境整崩的事情闭口不提,也是离谱。

过程记录

这种情况数据就别指望恢复了,直接怼HDFS进行格式化吧,因为服务器资源就这么些,这个环境还不能重装系统,最保险的方式就是重新格式化HDFS了,否则到时候重装各种组件,旧文件删除不完全啥的,都是坑。

准备工作

停止HDFS进程

停止所有假死的HDFS进程,保证没有进程还存在
NameNode格式化——组件恢复,数据丢失_第1张图片

删除数据

由于研发格式化过一次,产生了新的集群信息和数据信息,手动删除一下,具体路径可以参考配置文件hdfs-site.xml的dfs.datanode.data.dir
在这里插入图片描述

删除日志和临时目录

具体的路径可以查看配置文件中的hadoop.tmp.dir和日志配置项:
NameNode格式化——组件恢复,数据丢失_第2张图片

启动JournalNode服务

由于启用了HA,所以格式化过程中会去连接JournalNode服务,如果不保证JN服务正常提供服务,初始化会失败:
NameNode格式化——组件恢复,数据丢失_第3张图片

格式化HDFS

执行NameNode格式化

保证JN服务正常后,再次format,注意!必须使用正确的用户进行,如果之前启动HDFS的用户是hdfs用户,就必须使用hdfs用户进行,否则会出现文件权限问题,需要手动授权

hdfs namenode -format

在这里插入图片描述
格式化完成后,启动NameNode,此时可以访问WebUI检查状态:
NameNode格式化——组件恢复,数据丢失_第4张图片

恢复Standby NameNode

此时的HDFS还不是HA,切换到hdfs用户,执行bootstrapStandby命令:
NameNode格式化——组件恢复,数据丢失_第5张图片

启动Standby NameNode

此时可以正常启动Standby的NameNode,并检查WebUI:
NameNode格式化——组件恢复,数据丢失_第6张图片
NameNode格式化——组件恢复,数据丢失_第7张图片

恢复依赖服务

接下来依次恢复其他的依赖服务,如HBASE、HIVE等:
NameNode格式化——组件恢复,数据丢失_第8张图片

小结

环境一定不要让乱搞的研发人员上去操作,百度到的命令不管什么含义都敢直接执行,这种人能带来的灾难绝对不止一点。

你可能感兴趣的:(HDFS,大数据,运维,hdfs,hadoop,big,data)