在对HDFS格式化,执行hadoop namenode -format命令时

在对HDFS格式化,执行hadoop namenode -format命令时,出现未知的主机名的问题,异常信息如下所示:

 [shirdrn@localhost bin]$ hadoop namenode -format

11/06/2207:33:31INFOnamenode.NameNode:STARTUP_MSG:

/************************************************************

STARTUP_MSG:StartingNameNode

STARTUP_MSG:host=java.net.UnknownHostException:localhost.localdomain:localhost.localdomain

STARTUP_MSG:args=[-format]

STARTUP_MSG:version=0.20.0

STARTUP_MSG:build=https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.20-r763504;compiledby'ndaley'onThuApr905:18:40UTC2009

************************************************************/

Re-formatfilesystemin/tmp/hadoop/hadoop-shirdrn/dfs/name?(YorN)Y

11/06/2207:33:36INFOnamenode.FSNamesystem:fsOwner=shirdrn,shirdrn

11/06/2207:33:36INFOnamenode.FSNamesystem:supergroup=supergroup

11/06/2207:33:36INFOnamenode.FSNamesystem:isPermissionEnabled=true

11/06/2207:33:36INFOmetrics.MetricsUtil:UnabletoobtainhostName

java.net.UnknownHostException:localhost.localdomain:localhost.localdomain

atjava.net.InetAddress.getLocalHost(InetAddress.java:1353)

atorg.apache.hadoop.metrics.MetricsUtil.getHostName(MetricsUtil.java:91)

atorg.apache.hadoop.metrics.MetricsUtil.createRecord(MetricsUtil.java:80)

atorg.apache.hadoop.hdfs.server.namenode.FSDirectory.initialize(FSDirectory.java:73)

atorg.apache.hadoop.hdfs.server.namenode.FSDirectory.<init>(FSDirectory.java:68)

atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:370)

atorg.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:853)

atorg.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:947)

atorg.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:964)

11/06/2207:33:36INFOcommon.Storage:Imagefileofsize97savedin0seconds.

11/06/2207:33:36INFOcommon.Storage:Storagedirectory/tmp/hadoop/hadoop-shirdrn/dfs/namehasbeensuccessfullyformatted.

11/06/2207:33:36INFOnamenode.NameNode:SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG:ShuttingdownNameNodeatjava.net.UnknownHostException:localhost.localdomain:localhost.localdomain

************************************************************/

我们通过执行hostname命令可以看到:

[shirdrn@localhost bin]# hostnamelocalhost.localdomain

也就是说,Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名是localhost.localdomain,然后在/etc/hosts文件中进行映射的时候,没有找到,看下我的/etc/hosts内容:

[root@localhost bin]# cat /etc/hosts

#Donotremovethefollowingline,orvariousprograms

#thatrequirenetworkfunctionalitywillfail.

127.0.0.1localhostlocalhost

192.168.1.103           localhost       localhost

也就说,通过localhost.localdomain根本无法映射到一个IP地址,所以报错了。

此时,我们查看一下/etc/sysconfig/network文件:

NETWORKING=yes

NETWORKING_IPV6=yes

HOSTNAME=localhost.localdomain

可见,执行hostname获取到这里配置的HOSTNAME的值。

解决办法:

修改/etc/sysconfig/network中HOSTNAME的值为localhost,或者自己指定的主机名,保证localhost在/etc/hosts文件中映射为正确的IP地址,然后重新启动网络服务:

[root@localhost bin]# /etc/rc.d/init.d/network restart

Shuttingdowninterfaceeth0:[OK]

Shuttingdownloopbackinterface:[OK]

Bringinguploopbackinterface:[OK]

Bringingupinterfaceeth0:

DeterminingIPinformationforeth0...done.

[  OK  ]

这时,再执行格式化HDFS命令,以及启动HDFS集群就正常了:

[shirdrn@localhost bin]$ hadoop namenode -format

11/06/2208:02:37INFOnamenode.NameNode:STARTUP_MSG:

/************************************************************

STARTUP_MSG:StartingNameNode

STARTUP_MSG:host=localhost/127.0.0.1

STARTUP_MSG:args=[-format]

STARTUP_MSG:version=0.20.0

STARTUP_MSG:build=https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.20-r763504;compiledby'ndaley'onThuApr905:18:40UTC2009

************************************************************/

11/06/2208:02:37INFOnamenode.FSNamesystem:fsOwner=shirdrn,shirdrn

11/06/2208:02:37INFOnamenode.FSNamesystem:supergroup=supergroup

11/06/2208:02:37INFOnamenode.FSNamesystem:isPermissionEnabled=true

11/06/2208:02:37INFOcommon.Storage:Imagefileofsize97savedin0seconds.

11/06/2208:02:37INFOcommon.Storage:Storagedirectory/tmp/hadoop/hadoop-shirdrn/dfs/namehasbeensuccessfullyformatted.

11/06/2208:02:37INFOnamenode.NameNode:SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG:ShuttingdownNameNodeatlocalhost/127.0.0.1

************************************************************/

[shirdrn@localhostbin]$start-all.sh

startingnamenode,loggingto/home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-namenode-localhost.out

localhost:startingdatanode,loggingto/home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-datanode-localhost.out

localhost:startingsecondarynamenode,loggingto/home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-secondarynamenode-localhost.out

startingjobtracker,loggingto/home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-jobtracker-localhost.out

localhost: starting tasktracker, logging to /home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-tasktracker-localhost.out

[shirdrn@localhostbin]$jps

8192TaskTracker

7905DataNode

7806NameNode

8065JobTracker

8002SecondaryNameNode

8234Jps

相关推荐