一、異常現象
安裝好hadoop之后,執行格式化namenode命令時,拋出以下異常:
18/03/21 21:02:10 WARN net.DNS: Unable to determine local hostname -falling back to "localhost" java.net.UnknownHostException: rayner: rayner at java.net.InetAddress.getLocalHost(InetAddress.java:1475) at org.apache.hadoop.net.DNS.resolveLocalHostname(DNS.java:284) at org.apache.hadoop.net.DNS.<clinit>(DNS.java:61) at org.apache.hadoop.hdfs.server.namenode.NNStorage.newBlockPoolID(NNStorage.java:991) at org.apache.hadoop.hdfs.server.namenode.NNStorage.newNamespaceInfo(NNStorage.java:600) at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:162) at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1125) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1567) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1694) Caused by: java.net.UnknownHostException: rayner at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1295) at java.net.InetAddress.getLocalHost(InetAddress.java:1471) ... 8 more 18/03/21 21:02:10 WARN net.DNS: Unable to determine address of the host-falling back to "localhost" address java.net.UnknownHostException: rayner: rayner at java.net.InetAddress.getLocalHost(InetAddress.java:1475) at org.apache.hadoop.net.DNS.resolveLocalHostIPAddress(DNS.java:307) at org.apache.hadoop.net.DNS.<clinit>(DNS.java:62) at org.apache.hadoop.hdfs.server.namenode.NNStorage.newBlockPoolID(NNStorage.java:991) at org.apache.hadoop.hdfs.server.namenode.NNStorage.newNamespaceInfo(NNStorage.java:600) at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:162) at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1125) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1567) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1694) Caused by: java.net.UnknownHostException: rayner at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1295) at java.net.InetAddress.getLocalHost(InetAddress.java:1471) ... 8 more
二、異常原因
是因為更改了虛擬機的hostname
vim /etc/sysconfig/network

而/etc/hosts 下的文件沒有修改
三、異常解決
(1)編輯 /etc/hosts 文件
vim /etc/hosts
(2)將 主機IP 和 對應的主機名稱 進行映射
添加下圖紅框中內容
192.168.1.102 rayner

三、參考資料
1.Unable to determine local hostname -falling back to "localhost"
