在一個集群中,盡管是多用戶,但是端口是公用的,存在沖突的可能。如果另一個用戶已經采用默認配置安裝了hadoop,那么當前用戶再安裝hadoop時,必然會產生端口的沖突。在配置自己的hadoop時,可以自己配置datanode,namenode所需要的端口,避免沖突。
下述方法也可以用來解決一類因為端口沖突導致datanode、namenode和resourcemanager無法啟動的問題。如果通過jps查看不到相應的進程,查看對應的日志,如果是端口沖突,就可以考慮用下文的方法來解決。
首先,選取一些空閑的端口,我這里選擇的是50051-50062一系列端口。
hadoop版本為2.2.0,安裝的方法網上有很多,就不介紹了,這里主要介紹如果和其他用戶的hadoop產生端口沖突時需要設置哪些自己的端口。需要設置的參數可以參考hadoop官網:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/ClusterSetup.html。在網頁左下角有各個配置文件的參數信息。
修改端口配置的步驟是對照日志文件來查看沖突的端口有哪些,然后在相應的配置文件中去修改這個端口就可以了。
1、hdfs-site.xml
這里修改hdfs相關的端口。
1 <property> 2 <name>dfs.namenode.scondary.http-address</name> 3 <value>node01:9001</value> 4 </property> 5 <property> 6 <name>dfs.datanode.address</name> 7 <value>0.0.0.0:50051</value> 8 </property> 9 <property> 10 <name>dfs.datanode.http.address</name> 11 <value>0.0.0.0:50052</value> 12 </property> 13 <property> 14 <name>dfs.namenode.http-address</name> 15 <value>node01:50053</value> 16 </property> 17 <property> 18 <name>dfs.datanode.ipc.address</name> 19 <value>0.0.0.0:50055</value> 20 </property>
2、yarn-site.xml
這里修改與yarn相關的代碼,日志文件為yarn-username-nodemanager等開頭的文件。
1 <property> 2 <name>yarn.resourcemanager.address</name> 3 <value>node01:50056</value> 4 </property> 5 <property> 6 <name>yarn.resourcemanager.scheduler.address</name> 7 <value>node01:50057</value> 8 </property> 9 <property> 10 <name>yarn.resourcemanager.resource-tracker.address</name> 11 <value>node01:50058</value> 12 </property> 13 <property> 14 <name>yarn.resourcemanager.admin.address</name> 15 <value>node01:50059</value> 16 </property> 17 <property> 18 <name>yarn.resourcemanager.webapp.address</name> 19 <value>node01:9090</value> 20 </property> 21 <property> 22 <name>yarn.nodemanager.localizer.address</name> 23 <value>0.0.0.0:50060</value> 24 </property> 25 <property> 26 <name>yarn.nodemanager.webapp.address</name> 27 <value>0.0.0.0:50062</value> 28 </property>
3、mapred-site.xml
這里修改mapreduce相關的參數。下文中的10020和19888沒有沖突,所以沒有改成50062以后的端口。
1 <property> 2 <name>mapreduce.jobhistory.address</name> 3 <value>0.0.0.0:10020</value> 4 </property> 5 <property> 6 <name>mapreduce.jobhistory.webapp.address</name> 7 <value>0.0.0.0:19888</value> 8 </property> 9 <property> 10 <name>mapreduce.shuffle.port</name> 11 <value>50061</value> 12 </property>
總結:端口的沖突很好解決,只需要到網站所提供的各個配置文件中找到相應的沖突端口所在的參數,然后到配置文件更改就行了。
