hadoop分布式环境中端口号被占用无法启动解决方案概述

初学hadoop时第一步就是搭建环境,本文重点关注hadoop分布式环境搭建过程中namenode因端口占用无法启动的报错,现分析如下:

错误日志:

“BindException: Problem binding to cs-01.localhost.localdomain/192.168.0.4:9001 : Address already in use”

日志分析:在启动hadoop时,namenode进程会绑定用户在core-site.xml中fs.default.name制定的端口号,由于该端口号已经被其他进程占用,自然namenode进程无法绑定该端口号,所以namenode无法启动。


解决方案:

1.确定fs.default.name 中指定的ip地址与/etc/hosts中配置的域名解析一致。

例:在core-site.xml中,设置有:

                 <property>
  <name>fs.default.name</name>
<value>hdfs://master:9000</value>
 </property>


则在/etc/hosts中,需要设置master对应的ip地址,否则hadoop将无法解析ip地址。


2.杀死目前其他占用端口的进程

通过“netstat -apn | grep 端口号”命令查看绑定端口号的当前运行进程;

        通过“kill pID”杀死占用着端口号的进程;

重新启动hadoop;


3.namenode默认的9000端口被系统进程占用,即使你在2中把进程kill掉,过一段时间系统会自动重启被kill的进程。这个时候我们可以再core-site.xml中改变fs.default.name属性对应的端口号。

例: <property>
      <name>fs.default.name</name>
       <value>hdfs://master:47000</value>
          </property>


4.若以上各步做完,依旧无法启动namenode,请重启机器吧。(本人在搭建环境中花了半天,尝试网上各种解决方案都无果,结果重启机器后,hadoop就能正常启动了。



以上供大家参考,用代码堆砌世界,共同进步!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值