1. 程式人生 > >Hadoop格式化HDFS報錯java.net.UnknownHostException: localhost.localdomain: localhost.localdomain

Hadoop格式化HDFS報錯java.net.UnknownHostException: localhost.localdomain: localhost.localdomain

n-n article working boa att eth0 mini board title

異常描述

在對HDFS格式化,執行hadoop namenode -format命令時,出現未知的主機名的問題,異常信息如下所示:

[plain] view plain copy
  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. ************************************************************/

我們通過執行hostname命令可以看到:

[plain] view plain copy
  1. [shirdrn@localhost bin]# hostname
  2. localhost.localdomain

也就是說,Hadoop在格式化HDFS的時候,通過hostname命令獲取到的主機名是localhost.localdomain,然後在/etc/hosts文件中進行映射的時候,沒有找到,看下我的/etc/hosts內容:

[plain] view plain copy
  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

也就說,通過localhost.localdomain根本無法映射到一個IP地址,所以報錯了。

此時,我們查看一下/etc/sysconfig/network文件:

[plain] view plain copy
  1. NETWORKING=yes
  2. NETWORKING_IPV6=yes
  3. HOSTNAME=localhost.localdomain

可見,執行hostname獲取到這裏配置的HOSTNAME的值。

解決方法

修改/etc/sysconfig/network中HOSTNAME的值為localhost,或者自己指定的主機名,保證localhost在/etc/hosts文件中映射為正確的IP地址,然後重新啟動網絡服務:

[plain] view plain copy
  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 ]

這時,再執行格式化HDFS命令,以及啟動HDFS集群就正常了。

格式化:

[plain] view plain copy
  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. ************************************************************/

啟動:

[plain] view plain copy
  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

查看:

[plain] view plain copy
    1. [shirdrn@localhost bin]$ jps
    2. 8192 TaskTracker
    3. 7905 DataNode
    4. 7806 NameNode
    5. 8065 JobTracker
    6. 8002 SecondaryNameNode
    7. 8234 Jps
    8. from https://blog.csdn.net/shirdrn/article/details/6562292

Hadoop格式化HDFS報錯java.net.UnknownHostException: localhost.localdomain: localhost.localdomain