Hadoop格式化报错java.net.UnknownHostException:

xiaoxiao2021-02-28  93

异常描述

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

[plain]  view plain  copy  [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命令可以看到:

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

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

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

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

解决方法

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

[plain]  view plain  copy [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集群就正常了。

格式化:

[plain]  view plain  copy [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   ************************************************************/   启动: [plain]  view plain  copy [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   查看: [plain]  view plain  copy [shirdrn@localhost bin]$ jps   8192 TaskTracker   7905 DataNode   7806 NameNode   8065 JobTracker   8002 SecondaryNameNode   8234 Jps  
转载请注明原文地址: https://www.6miu.com/read-33645.html

最新回复(0)