IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

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

量子数科院 2011-05-25 12:28:02 累计浏览 3,955 次
本机暂存

在测试安装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: 
   2:    fs.default.name
   3:    hdfs://master:9100
   4:    
   5:     为默认hdfs文件访问URI
   6:    
   7: 

    hdfs-site.xml

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

    mapred-site.xml

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

    以上端口都配置为和其他人不冲突的端口,然后启动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()

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. Bash的模式和配置文件加载 (累计阅读 24,409)
  2. HFile存储格式 (累计阅读 15,973)
  3. hbase介绍 (累计阅读 12,367)
  4. Zookeeper工作原理 (累计阅读 12,200)
  5. Facebook的实时Hadoop系统 (累计阅读 11,491)
  6. 海量数据面试题举例 (累计阅读 11,114)
  7. redis在大数据量下的压测表现 (累计阅读 8,292)
  8. HBase技术介绍 (累计阅读 8,075)
  9. 淘宝数据魔方技术架构解析 (累计阅读 7,955)
  10. HBase随机写以及随机读性能测试 (累计阅读 7,546)