format“ get ”java.net.UnknownException

最近学习Hadoop,在配置过程中总是遇到问题。我是按照官网上的配置伪分布式的方式来进行配置的。

当执行到命令bin/hadoop namenode -format 的时候遇到了问题:

STARTUP_MSG: Starting NameNode   STARTUP_MSG:   host = java.net.UnknownHostException: *****     STARTUP_MSG:   args = [-format]  注释:上边打*的地方为我的主机的名字,这里不便透露

在网上找了很多方法,最后终于找到了解决方案:

首先在命令行中输入hostname来查看主机名:

# hostname   localhost.localdomain  也就是说,Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名是localhost.localdomain,然后在/etc/hosts文件中进行映射的时候,没有找到,看下我的/etc/hosts内容:
# cat /etc/hosts   # Do not remove the following line, or various programs   # that require network functionality will fail.   127.0.0.1               localhost.localdomain       localhost   ::1                   localhost6domain6 localhost6也就说,通过localhost.localdomain根本无法映射到一个IP地址,所以报错了。

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

NETWORKING=yes   NETWORKING_IPV6=yes   HOSTNAME=localhost.localdomain 修改/etc/sysconfig/network中HOSTNAME的值为localhost,或者自己指定的主机名,保证localhost在/etc/hosts文件中映射为正确的IP地址 # vim /etc/hosts   Do not remove the following line, or various programs   that require network functionality will fail.   127.0.0.1               localhost      MyHostName   ::1                   localhost6domain6 localhost6

然后重新启动网络服务:

# /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命令bin/hadoop namenode -format 就可以显示正常了。

接下来执行bin/start-all.sh 也遇到了问题,下篇文章继续

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2e77a184f8da63c982d3095b7aef1c1b.html