hadoop 中 HDFS 由于多次格式化引起的 nanenode 与 datanode 启动异常

来源:互联网 发布:c语言程序代码大全 编辑:程序博客网 时间:2024/05/17 03:15

这里写图片描述

  • 问题介绍
    • 1 发现问题
  • 解决问题
  • 注意

1.问题介绍

刚开始是由于启动 Hbase 时 HMaster 进程总是出现几秒种后便消失,虽然主机的 namenode 和 slave 的datanode 进程中由显示,但当查看他们的日志时仍然看到了如下错误。
(/usr/local/cluster/hadoop/logs/hadoop-hadoop2-nanenode-out.log 文件)
这里写图片描述(由于特殊原因,此图不全或者不对,仅供参考)
(/usr/local/cluster/hadoop/logs/hadoop-hadoop2-datanode-out.log)
这里写图片描述

1.1 发现问题

从上图发现很有可能是由于多次 namenode format 会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,所以造成namenode节点上的namespaceID与datanode节点上的namespaceID不一致。启动失败。

2.解决问题

1.按顺序关闭集群,关闭不了的直接 kill 掉
2.删除 hdfs 配置文件所产生的目录文件,其大致有以下两种:
(以下依据自己的配置而定)

  • master 上
    1.删除/usr/local/cluster/data/namenode 中的所有文件

  • slave上
    1.删除/usr/local/cluster/data/datanode 中的所有的文件
    2./usr/local/cluster/data/journal 中的文件

  • 重新启动集群即可

3.注意

这种方法带来的一个副作用即是,hdfs上的所有数据丢失。如果hdfs上存放有重要数据的时候,不建议采用该方法。

0 0
原创粉丝点击