场景:一个集群有多人使用,假设有两个人,一个人已经在他的用户下配置了一个Hadoop集群,并且一直在跑程序,另一个同学有自己的用户,他对Hadoop做了一些源码更改,想自己搭建一个Hadoop集群(或者他和前一个人不熟,想用自己搭建的Hadoop),这就需要集群上有两个Hadoop,如果配置不好会出现端口冲突的问题,使得两个人配置的Hadoop不能使用。

Hadoop本身也就是由一组Java程序组成,通过Socket绑定到网络端口上进行RPC,因此只要保证以下两点就可以:

  • Hadoop在OS上的本地存储路径不冲突
  • Hadoop在OS上的网络端口不冲突

1.路径问题:
只需要把hadoop.tmp.dir设置到用户目录下即可 2.端口问题:
Hadoop常用的端口:
HDFS端口如下:

参数 描述 默认 配置文件 例子值
fs.defaultFS namenode RPC交互端口 8020 core-site.xml hdfs://Master:8020
dfs.http.address namenode web管理端口 50070 hdfs-site.xml 0.0.0.0:50070
dfs.datanode.address datanode控制端口 50010 hdfs-site.xml 0.0.0.0:50010
dfs.datanode.ipc.address datanode的RPC服务器地址和端口 50020 hdfs-site.xml 0.0.0.0:50020
dfs.datanode.http.address datanode的HTTP服务器和端口 50075 hdfs-site.xml 0.0.0.0:50075

MapReduce端口如下:

参数 描述 默认 配置文件 例子值
mapred.job.trackerjob tracker交互端口 8021 mapred-site.xml hdfs://master:8021
mapred.job.tracker.http.address jobtracker的web管理端口 50030 mapred-site.xml 0.0.0.0:50030
mapred.task.tracker.http.address tasktracker的HTTP端口 50060 mapred-site.xml 0.0.0.0:50060
mapreduce.shuffle.port ShuffleHandler的端口 13562 mapred-site.xml 13562

其他端口:

参数 描述 默认 配置文件 例子值
dfs.namenode.secondary.http-address secondary Namenode web管理端口 50090 hdfs-site.xml 0.0.0.50090

以上有些配置是hadoop1.x的,2.x的配置请参考官方文档,大概修改上面几个端口以及目录就可以配置多个hadoop。目录配置也可以参考官方文档进行相应的修改。

Hadoop的目录配置看下图: