最近学习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然后重新启动网络服务: