在一個集羣中,儘管是多用戶,可是端口是公用的,存在衝突的可能。若是另外一個用戶已經採用默認配置安裝了hadoop,那麼當前用戶再安裝hadoop時,必然會產生端口的衝突。在配置本身的hadoop時,能夠本身配置datanode,namenode所須要的端口,避免衝突。html
下述方法也能夠用來解決一類由於端口衝突致使datanode、namenode和resourcemanager沒法啓動的問題。若是經過jps查看不到相應的進程,查看對應的日誌,若是是端口衝突,就能夠考慮用下文的方法來解決。node
首先,選取一些空閒的端口,我這裏選擇的是50051-50062一系列端口。web
hadoop版本爲2.2.0,安裝的方法網上有不少,就不介紹了,這裏主要介紹若是和其餘用戶的hadoop產生端口衝突時須要設置哪些本身的端口。須要設置的參數能夠參考hadoop官網:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/ClusterSetup.html。在網頁左下角有各個配置文件的參數信息。apache
修改端口配置的步驟是對照日誌文件來查看衝突的端口有哪些,而後在相應的配置文件中去修改這個端口就能夠了。app
一、hdfs-site.xmlwebapp
這裏修改hdfs相關的端口。oop
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>
二、yarn-site.xml網站
這裏修改與yarn相關的代碼,日誌文件爲yarn-username-nodemanager等開頭的文件。spa
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>
三、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>
總結:端口的衝突很好解決,只須要到網站所提供的各個配置文件中找到相應的衝突端口所在的參數,而後到配置文件更改就好了。