Hadoop安装端口已经被占用问题的解决方法

在测试安装hadoop的时候,通常会遇到大家在同一批机器上安装hadoop的情况,这样的话会有端口已经被占用导致安装不成功的情况出现。

Hadoop日志会提示这种错误:

ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.net.BindException: Address already in use

在这种情况下,最好的方法就是在配置环境时把所有的端口配置都进行修改。

在hadoop 0.20版本会涉及到3个配置文件:

core-site.xml:

   1: <property>
   2:    <name>fs.default.name</name>
   3:    <value>hdfs://master:9100</value>
   4:    <description>
   5:     为默认hdfs文件访问URI
   6:    </description>
   7: </property>

hdfs-site.xml

   1: <property>
   2:   <name>dfs.datanode.address</name>
   3:   <value>0.0.0.0:50011</value>
   4:   <description>
   5:    默认为50010, 是datanode的监听端口
   6:   </description>
   7: </property>
   8: <property>
   9:   <name>dfs.datanode.http.address</name>
  10:   <value>0.0.0.0:50076</value>
  11:   <description>
  12:     默认为50075,为datanode的http server端口
  13:   </description>
  14: </property>
  15: <property>
  16:   <name>dfs.datanode.ipc.address</name>
  17:   <value>0.0.0.0:50021</value>
  18:   <description>
  19:     默认为50020, 为datanode的ipc server端口
  20:   </description>
  21: </property>

mapred-site.xml

   1: <property>
   2:   <name>mapred.job.tracker</name>
   3:   <value>master:9101</value>
   4:   <description>
   5:     job tracker运行的位置和端口
   6:   </description>
   7: </property>
   8:
   9: <property>
  10:   <name>mapred.task.tracker.http.address</name>
  11:   <value>0.0.0.0:50061</value>
  12:   <description>
  13:     默认为50061, 是task tracker的http server端口
  14:   </description>
  15: </property>

以上端口都配置为和其他人不冲突的端口,然后启动hadoop就可以顺利启动了。

PS:

1:如果遇到这种错误:

ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because org.apache.hadoop.ipc.RemoteException: java.io.IOException: Unknown protocol to name node: org.apache.hadoop.mapred.InterTrackerProtoco

说明你在core-site.xml中fs.default.name的端口 和 mapred-site.xml中mapred.job.tracker中端口配置为完全相同的了,请修改为不同端口。

2:如果遇到这种:

error: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete /tmp/hadoop-*/mapred/system. Name node is in safe mode.

请不要急,NameNode会在开始启动阶段自动关闭安全模式,然后启动成功。如果你不想等待,可以运行:

bin/hadoop dfsadmin -safemode leave 强制结束。

解释:安全模式

NameNode启动时会从fsimage和edits日志文件中装载文件系统的状态信息,接着它等待各个DataNode向它报告它们各自的数据块状态,这样,NameNode就不会过早地开始复制数据块,即使在副本充足的情况下。这个阶段,NameNode处于安全模式下。NameNode的安全模式本质上是HDFS集群的一种只读模式,此时集群不允许任何对文件系统或者数据块修改的操作。通常NameNode会在开始阶段自动地退出安全模式。如果需要,你也可以通过’bin/hadoop dfsadmin -safemode’命令显式地将HDFS置于安全模式。NameNode首页会显示当前是否处于安全模式。关于安全模式的更多介绍和配置信息请参考JavaDoc:setSafeMode()

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值