Hadoop格式化HDFS报错java.net.UnknownHostException: localhost.localdomain: localhost.localdomain


异常描述


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

  1. [shirdrn@localhost bin]$ hadoop namenode -format 
  2. 11/06/22 07:33:31 INFO namenode.NameNode: STARTUP_MSG:  
  3. /************************************************************ 
  4. STARTUP_MSG: Starting NameNode 
  5. STARTUP_MSG:   host = java.net.UnknownHostException: localhost.localdomain: localhost.localdomain 
  6. STARTUP_MSG:   args = [-format] 
  7. STARTUP_MSG:   version = 0.20.0 
  8. STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.20 -r 763504; compiled by 'ndaley' on Thu Apr  9 05:18:40 UTC 2009 
  9. ************************************************************/ 
  10. Re-format filesystem in /tmp/hadoop/hadoop-shirdrn/dfs/name ? (Y or N) Y 
  11. 11/06/22 07:33:36 INFO namenode.FSNamesystem: fsOwner=shirdrn,shirdrn 
  12. 11/06/22 07:33:36 INFO namenode.FSNamesystem: supergroup=supergroup 
  13. 11/06/22 07:33:36 INFO namenode.FSNamesystem: isPermissionEnabled=true 
  14. 11/06/22 07:33:36 INFO metrics.MetricsUtil: Unable to obtain hostName 
  15. java.net.UnknownHostException: localhost.localdomain: localhost.localdomain 
  16.         at java.net.InetAddress.getLocalHost(InetAddress.java:1353) 
  17.         at org.apache.hadoop.metrics.MetricsUtil.getHostName(MetricsUtil.java:91) 
  18.         at org.apache.hadoop.metrics.MetricsUtil.createRecord(MetricsUtil.java:80) 
  19.         at org.apache.hadoop.hdfs.server.namenode.FSDirectory.initialize(FSDirectory.java:73) 
  20.         at org.apache.hadoop.hdfs.server.namenode.FSDirectory.<init>(FSDirectory.java:68) 
  21.         at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:370) 
  22.         at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:853) 
  23.         at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:947) 
  24.         at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:964) 
  25. 11/06/22 07:33:36 INFO common.Storage: Image file of size 97 saved in 0 seconds. 
  26. 11/06/22 07:33:36 INFO common.Storage: Storage directory /tmp/hadoop/hadoop-shirdrn/dfs/name has been successfully formatted. 
  27. 11/06/22 07:33:36 INFO namenode.NameNode: SHUTDOWN_MSG:  
  28. /************************************************************ 
  29. SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: localhost.localdomain: localhost.localdomain 
  30. ************************************************************/ 
 [shirdrn@localhost bin]$ hadoop namenode -format
11/06/22 07:33:31 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
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 -r 763504; compiled by 'ndaley' on Thu Apr  9 05:18:40 UTC 2009
************************************************************/
Re-format filesystem in /tmp/hadoop/hadoop-shirdrn/dfs/name ? (Y or N) Y
11/06/22 07:33:36 INFO namenode.FSNamesystem: fsOwner=shirdrn,shirdrn
11/06/22 07:33:36 INFO namenode.FSNamesystem: supergroup=supergroup
11/06/22 07:33:36 INFO namenode.FSNamesystem: isPermissionEnabled=true
11/06/22 07:33:36 INFO metrics.MetricsUtil: Unable to obtain hostName
java.net.UnknownHostException: localhost.localdomain: localhost.localdomain
        at java.net.InetAddress.getLocalHost(InetAddress.java:1353)
        at org.apache.hadoop.metrics.MetricsUtil.getHostName(MetricsUtil.java:91)
        at org.apache.hadoop.metrics.MetricsUtil.createRecord(MetricsUtil.java:80)
        at org.apache.hadoop.hdfs.server.namenode.FSDirectory.initialize(FSDirectory.java:73)
        at org.apache.hadoop.hdfs.server.namenode.FSDirectory.<init>(FSDirectory.java:68)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:370)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:853)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:947)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:964)
11/06/22 07:33:36 INFO common.Storage: Image file of size 97 saved in 0 seconds.
11/06/22 07:33:36 INFO common.Storage: Storage directory /tmp/hadoop/hadoop-shirdrn/dfs/name has been successfully formatted.
11/06/22 07:33:36 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: localhost.localdomain: localhost.localdomain
************************************************************/
我们通过执行hostname命令可以看到:

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

  1. [root@localhost bin]# cat /etc/hosts 
  2. # Do not remove the following line, or various programs 
  3. # that require network functionality will fail. 
  4. 127.0.0.1               localhost       localhost 
  5. 192.168.1.103           localhost       localhost 
[root@localhost bin]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost       localhost
192.168.1.103           localhost       localhost
也就说,通过localhost.localdomain根本无法映射到一个IP地址,所以报错了。

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

  1. NETWORKING=yes 
  2. NETWORKING_IPV6=yes 
  3. HOSTNAME=localhost.localdomain 
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=localhost.localdomain

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


解决方法


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

  1. [root@localhost bin]# /etc/rc.d/init.d/network restart 
  2. Shutting down interface eth0:  [  OK  ] 
  3. Shutting down loopback interface:  [  OK  ] 
  4. Bringing up loopback interface:  [  OK  ] 
  5. Bringing up interface eth0:   
  6. Determining IP information for eth0... done. 
  7. [  OK  ] 
[root@localhost bin]# /etc/rc.d/init.d/network restart
Shutting down interface eth0:  [  OK  ]
Shutting down loopback interface:  [  OK  ]
Bringing up loopback interface:  [  OK  ]
Bringing up interface eth0:  
Determining IP information for eth0... done.
[  OK  ]

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

格式化:

  1. [shirdrn@localhost bin]$ hadoop namenode -format 
  2. 11/06/22 08:02:37 INFO namenode.NameNode: STARTUP_MSG:  
  3. /************************************************************ 
  4. STARTUP_MSG: Starting NameNode 
  5. STARTUP_MSG:   host = localhost/127.0.0.1 
  6. STARTUP_MSG:   args = [-format] 
  7. STARTUP_MSG:   version = 0.20.0 
  8. STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.20 -r 763504; compiled by 'ndaley' on Thu Apr  9 05:18:40 UTC 2009 
  9. ************************************************************/ 
  10. 11/06/22 08:02:37 INFO namenode.FSNamesystem: fsOwner=shirdrn,shirdrn 
  11. 11/06/22 08:02:37 INFO namenode.FSNamesystem: supergroup=supergroup 
  12. 11/06/22 08:02:37 INFO namenode.FSNamesystem: isPermissionEnabled=true 
  13. 11/06/22 08:02:37 INFO common.Storage: Image file of size 97 saved in 0 seconds. 
  14. 11/06/22 08:02:37 INFO common.Storage: Storage directory /tmp/hadoop/hadoop-shirdrn/dfs/name has been successfully formatted. 
  15. 11/06/22 08:02:37 INFO namenode.NameNode: SHUTDOWN_MSG:  
  16. /************************************************************ 
  17. SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.0.1 
  18. ************************************************************/ 
[shirdrn@localhost bin]$ hadoop namenode -format
11/06/22 08:02:37 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
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 -r 763504; compiled by 'ndaley' on Thu Apr  9 05:18:40 UTC 2009
************************************************************/
11/06/22 08:02:37 INFO namenode.FSNamesystem: fsOwner=shirdrn,shirdrn
11/06/22 08:02:37 INFO namenode.FSNamesystem: supergroup=supergroup
11/06/22 08:02:37 INFO namenode.FSNamesystem: isPermissionEnabled=true
11/06/22 08:02:37 INFO common.Storage: Image file of size 97 saved in 0 seconds.
11/06/22 08:02:37 INFO common.Storage: Storage directory /tmp/hadoop/hadoop-shirdrn/dfs/name has been successfully formatted.
11/06/22 08:02:37 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.0.1
************************************************************/
启动:
  1. [shirdrn@localhost bin]$ start-all.sh  
  2. starting namenode, logging to /home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-namenode-localhost.out 
  3. localhost: starting datanode, logging to /home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-datanode-localhost.out 
  4. localhost: starting secondarynamenode, logging to /home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-secondarynamenode-localhost.out 
  5. starting jobtracker, logging to /home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-jobtracker-localhost.out 
  6. localhost: starting tasktracker, logging to /home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-tasktracker-localhost.out 
[shirdrn@localhost bin]$ start-all.sh 
starting namenode, logging to /home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-namenode-localhost.out
localhost: starting datanode, logging to /home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-datanode-localhost.out
localhost: starting secondarynamenode, logging to /home/shirdrn/eclipse/eclipse-3.5.2/hadoop/hadoop-0.20.0/logs/hadoop-shirdrn-secondarynamenode-localhost.out
starting jobtracker, logging to /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
查看:
  1. [shirdrn@localhost bin]$ jps 
  2. 8192 TaskTracker 
  3. 7905 DataNode 
  4. 7806 NameNode 
  5. 8065 JobTracker 
  6. 8002 SecondaryNameNode 
  7. 8234 Jps 
[shirdrn@localhost bin]$ jps
8192 TaskTracker
7905 DataNode
7806 NameNode
8065 JobTracker
8002 SecondaryNameNode
8234 Jps

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值