"Hadoop namenode -format" get "java.net.UnknownException"

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

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

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

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

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

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

  1. # cat /etc/hosts  
  2. # Do not remove the following line, or various programs  
  3. # that require network functionality will fail.  
  4. 127.0.0.1               localhost.localdomain       localhost  
  5. ::1                   localhost6domain6 localhost6
也就说,通过localhost.localdomain根本无法映射到一个IP地址,所以报错了。

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

  1. NETWORKING=yes  
  2. NETWORKING_IPV6=yes  
  3. HOSTNAME=localhost.localdomain 
修改/etc/sysconfig/network中HOSTNAME的值为localhost,或者自己指定的主机名,保证localhost在/etc/hosts文件中映射为正确的IP地址

  1. # vim /etc/hosts  
  2. Do not remove the following line, or various programs  
  3. that require network functionality will fail.  
  4. 127.0.0.1               localhost      MyHostName  
  5. ::1                   localhost6domain6 localhost6

然后重新启动网络服务:

  1. # /etc/rc.d/init.d/network restart  
  2. Shutting down interface eth0:  [  OK  ]  
  3. Shutting down loopback interface:  [  OK  ]  
  4. Bringing up loopback interface:  [  OK  ]  
  5. Bringing up interface eth0:    
  6. Determining IP information for eth0... done.  
  7. [  OK  ]  
这时,再执行格式化HDFS命令bin/hadoop namenode -format 就可以显示正常了。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值