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


 

異常描述

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

Java代碼
  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:   <span style="color: rgb(255, 0, 0);">host = java.net.UnknownHostException: centos64:centos64 
  6. </span>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: <span style="color: rgb(255, 0, 0);">localhost.localdomain: localhost.localdomain  
  16. </span>        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: centos64:centos64
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
************************************************************/

 再執行 /bin/start-all.sh 就不成功。

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

Java代碼 復制代碼  收藏代碼
  1. [shirdrn@localhost bin]# hostname  
  2. centos64   
[shirdrn@localhost bin]# hostname
centos64 

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

Java代碼 復制代碼  收藏代碼
  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.18.130           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.18.130           localhost       localhost

 在:查看一下/etc/sysconfig/network文件: 保存的是hostname 也就是主機名 。

在 /etc/hosts 中修改

127.0.0.1                   localhost       centos64

192.168.18.130           localhost      centos64

讓主機名centos64 在 hosts中能有一個IP與之相映射對應 。

2. 或修改 /etc/sysconfig/network 中的 hostname 為 localhost

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

 

以上修改完后,再執行格式化HDFS命令,以及啟動HDFS集群就正常了。

再啟用 bin/start-all.sh

再用  jps .

 

以上是單機版的 hadoop1.2安裝,如果是在集群中安裝,

1.把在master中的 /etc/hosts 中把所有slave的 IP 加進來,

如 

192.168.18.130          h0

192.168.18.131         h1

192.168.18.132         h2

2. 建立好SSH,實現無密碼登陸 ,見另一個blog

 

3. 修改 vi   /home/hadoop1.2/conf/master

h0 

vi   /home/hadoop1.2/conf/slave

h1

h2 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM