hadoop格式化失败原因 Format aborted in /data0/hadoop-name

[user6@das0 hadoop-0.20.203.0]$ bin/hadoop namenode-format
12/02/20 14:05:17 INFO namenode.NameNode:STARTUP_MSG: 
Re-format filesystem in /data0/hadoop-name ? (Y or N) y
Format aborted in /data0/hadoop-name
12/02/20 14:05:20 INFO namenode.NameNode:SHUTDOWN_MSG: 

随后启动hadoop,发现http://das0:5007无法显示。
将/data0/hadoop-name文件夹整个删除。然后再格,成功!!!

[zhangpeng6@das0 hadoop-0.20.203.0]$ bin/hadoop namenode-format
12/02/20 14:09:57 INFO namenode.NameNode:STARTUP_MSG: 
12/02/20 14:09:57 INFO util.GSet: VM type      = 64-bit
12/02/20 14:09:57 INFO util.GSet: 2% max memory = 177.77875MB
12/02/20 14:09:57 INFO util.GSet: capacity     = 2^24 = 16777216entries
12/02/20 14:09:57 INFO util.GSet: recommended=16777216,actual=16777216
12/02/20 14:09:57 INFO namenode.FSNamesystem:fsOwner=zhangpeng6
12/02/20 14:09:57 INFO namenode.FSNamesystem:supergroup=supergroup
12/02/20 14:09:57 INFO namenode.FSNamesystem:isPermissionEnabled=true
12/02/20 14:09:57 INFO namenode.FSNamesystem:dfs.block.invalidate.limit=100
12/02/20 14:09:57 INFO namenode.FSNamesystem:isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s),accessTokenLifetime=0 min(s)
12/02/20 14:09:57 INFO namenode.NameNode: Caching file namesoccuring more than 10 times 
12/02/20 14:09:57 INFO common.Storage: Image file of size 116saved in 0 seconds.
12/02/20 14:09:57 INFO common.Storage: Storage directory/data0/hadoop-name/namenode has been successfully formatted.
12/02/20 14:09:57 INFO namenode.NameNode:SHUTDOWN_MSG: 

问题总结:
在对namenode格式化之前,要确保dfs.name.dir参数指定的目录不存在。

Hadoop这样做的目的是防止错误地将已存在的集群格式化





在启动了ssh之后,再启动Hadoop,然后使用bin/hadoop fs -ls命令,总是出现类似于下面这种的错误。

10/03/15 19:43:10 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 0 time(s).

……
10/03/15 19:43:19 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 9 time(s).

Bad connection to FS. command aborted.

在此时,如果stop-all.sh的话,会发现no namenode to stop这样的语句。

然后看了一下namenode 的 log。发现错误如下:

2011-10-21 10:55:17,655 INFO org.apache.hadoop.metrics.MetricsUtil: Unable to obtain hostName
java.net.UnknownHostException: chjjun: chjjun: 未知的名称或服务
    at java.net.InetAddress.getLocalHost(InetAddress.java:1438)
    at org.apache.hadoop.metrics.MetricsUtil.getHostName(MetricsUtil.java:95)
    at org.apache.hadoop.metrics.MetricsUtil.createRecord(MetricsUtil.java:84)
    at org.apache.hadoop.metrics.jvm.JvmMetrics.(JvmMetrics.java:87)
    at org.apache.hadoop.metrics.jvm.JvmMetrics.init(JvmMetrics.java:78)
    at org.apache.hadoop.metrics.jvm.JvmMetrics.init(JvmMetrics.java:65)
    at org.apache.hadoop.hdfs.server.namenode.metrics.NameNodeMetrics.(NameNodeMetrics.java:103)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initMetrics(NameNode.java:199)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:302)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:433)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:421)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1359)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1368)
Caused by: java.net.UnknownHostException: chjjun: 未知的名称或服务
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866)
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258)
    at java.net.InetAddress.getLocalHost(InetAddress.java:1434)

也就是说未知的host名称,然后上网查了一下,查找到了文章:http://lxy2330.iteye.com/blog/1112806


然后我查看下自己的/etc/hosts中的内容如下:

127.0.0.1               localhost.localdomain localhost

::1             localhost6.localhost6domain localhost6

再看下/etc/sysconfig/network中的内容

发现HOSTNAME=chjjun

那篇文章上说是因为这个HOSTNAME在hosts中没有对应的ip所以解析不了。因此就将这个chjjun换成localhost。

之后#/etc/rc.d/init.d/network restart 重新启动网络服务。

然后再使用hadoop namenode -format

但是还是出现上面的错误。


最后,没有办法,重新启动电脑,再重新启动ssh。在启动hadoop。

使用bin/hadoop fs -ls

仍然报错。

但是这次的错误和上一次的错误不同了,并且使用的log文件的名字也有了变化,之前的log写在:

hadoop-chjjun-namenode-chjjun.log

而现在的log文件名称变为:

hadoop-chjjun-namenode-localhost.log

并且错误的内容也有了变化:

java.io.EOFException
    at java.io.RandomAccessFile.readInt(RandomAccessFile.java:776)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.isConversionNeeded(FSImage.java:836)
    at org.apache.hadoop.hdfs.server.common.Storage.checkConversionNeeded(Storage.java:697)
    at org.apache.hadoop.hdfs.server.common.Storage.access$000(Storage.java:62)
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:476)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:402)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:110)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:291)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.(FSNamesystem.java:270)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:271)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:303)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:433)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:421)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1359)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1368)
2011-10-21 13:46:48,767 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.io.EOFException
    at java.io.RandomAccessFile.readInt(RandomAccessFile.java:776)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.isConversionNeeded(FSImage.java:836)
    at org.apache.hadoop.hdfs.server.common.Storage.checkConversionNeeded(Storage.java:697)
    at org.apache.hadoop.hdfs.server.common.Storage.access$000(Storage.java:62)
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:476)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:402)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:110)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:291)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.(FSNamesystem.java:270)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:271)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:303)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:433)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:421)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1359)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1368)

似乎有了点儿希望。

之后再使用bin/hadoop fs -format命令。

该命令执行完了之后,hadoop居然可以运行了

你可能感兴趣的:(hadoop格式化失败原因 Format aborted in /data0/hadoop-name)