在對HDFS格式化,執行hadoop namenode -format命令時,出現未知的主機名的問題,異常信息以下所示:java
[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命令能夠看到:node
[shirdrn@localhost bin]# hostname localhost.localdomain
也就是說,Hadoop在格式化HDFS的時候,經過hostname命令獲取到的主機名是localhost.localdomain,而後在/etc/hosts文件中進行映射的時候,沒有找到,看下個人/etc/hosts內容:apache
[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文件:dom
NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME=localhost.localdomain
可見,執行hostname獲取到這裏配置的HOSTNAME的值。eclipse
修改/etc/sysconfig/network中HOSTNAME的值爲localhost,或者本身指定的主機名,保證localhost在/etc/hosts文件中映射爲正確的IP地址,而後從新啓動網絡服務:svn
[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集羣就正常了。oop
格式化:ui
[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 ************************************************************/
啓動:spa
[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
查看:
[shirdrn@localhost bin]$ jps 8192 TaskTracker 7905 DataNode 7806 NameNode 8065 JobTracker 8002 SecondaryNameNode 8234 Jps