启动hadoop时,namenode无法启动,log中出现:java.io.IOException: NameNode is not formatted

纯属作死!

hadoop配置好后,一定要先格式化:hadoop namenode -format
好像hadoop datanode -format也可以执行,但是没有什么效果。不推荐执行该语句。

博主就是配置好hadoop后,没有执行格式化,直接执行:start-all.sh
然后发现namenode无法启动,执行jps的效果如下:
这里写图片描述
查看hadoop-chj-namenode-hadoop.log的日志文件,报错如下:

2017-09-22 22:01:44,506 INFO org.apache.hadoop.hdfs.server.common.Storage: Storage directory /usr/local/hadoop-1.0.0/hadoop_data/hdfs/namenode does not exist.
2017-09-22 22:01:44,508 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /usr/local/hadoop-1.0.0/hadoop_data/hdfs/namenode is in an inconsistent state: storage directory does not exist or is not accessible.
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:288)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:97)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:386)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:360)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:276)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:496)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1279)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1288)
2017-09-22 22:01:44,509 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode:

报错的情况是namenode does not exist,也就是hdfs-site.xml中配置的dfs.name.dir的value值指向的文件夹不存在。

不存在,那就创建一个??

又作死,

创建之后,觉得应该完全ok了吧

执行:start-all.sh
执行:jps
这里写图片描述
namenode仍然无法启动,查看hadoop-chj-namenode-hadoop.log的日志文件,报错如下:

2017-09-22 22:06:40,156 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
java.io.IOException: NameNode is not formatted.
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:315)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:97)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:386)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:360)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:276)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:496)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1279)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1288)

哦,提示我NameNode is not formatted,这好说

那就格式化一下嘛
执行:hadoop namenode -format

美滋滋,解决问题就是这么快!

然而

这里写图片描述

wtf???!!!!

继续查看hadoop-chj-namenode-hadoop.log的日志文件,报错如下:

2017-09-22 22:09:23,896 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
java.io.IOException: NameNode is not formatted.
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:315)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:97)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:386)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:360)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:276)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:496)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1279)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1288)

还是报NameNode is not formatted的错

我格式化了呀??!!

于是继续格式化,无法启动,格式化,无法启动,…….

我觉得不行!!

这样下去,我会疯,hadoop也会疯

找了各种资料,终于明白了正确的打开方式!!!!谢天谢地!!!

(一)删除core-site.xml文件中配置的hadoop.tmp.dir指向的文件夹下的所有东西!!

(二)执行格式化:hadoop namenode -format
执行完毕后,在hadoop.tmp.dir指向的目录下会生成namenode文件夹

(三)启动hadooop,执行:start-all.sh
执行jps查看,
这里写图片描述
成功启动!

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值