您的位置:首页 > 运维架构

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

2012-12-21 16:19 573 查看
在测试安装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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: