zoukankan      html  css  js  c++  java
  • <zhuan>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. ************************************************************/  

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

    1. [shirdrn@localhost bin]# hostname  
    2. 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  

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

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

    1. NETWORKING=yes  
    2. NETWORKING_IPV6=yes  
    3. 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  ]  

    这时,再执行格式化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. ************************************************************/  

    启动:

    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  

    查看:

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

  • 相关阅读:
    [Python]爬虫v0.1
    [Python]同是新手的我,分享一些经验
    [python]闭包到底是什么鬼?
    测试Flask应用_学习笔记
    Flask模板_学习笔记
    SQL Server Alwayson概念总结
    JDBC数据库编程:ResultSet接口
    JDBC操作,执行数据库更新操作
    接口怎么实例化?
    java数据库编程:JDBC操作及数据库
  • 原文地址:https://www.cnblogs.com/riverphoenix/p/2480624.html
Copyright © 2011-2022 走看看