Yarn叢集的搭建與測試
阿新 • • 發佈:2018-11-11
一、叢集搭建
一、叢集規劃
主機名 | IP地址 | NN-1 | NN-2 | DN | ZK | ZKFC | JNN | RS | NameNode |
---|---|---|---|---|---|---|---|---|---|
node01 | 192.168.163.128 | √ | √ | √ | √ | ||||
node02 | 192.168.163.129 | √ | √ | √ | √ | √ | √ | √ | |
node03 | 192.168.163.130 | √ | √ | √ | √ | ||||
node04 | 192.168.163.131 | √ | √ | √ |
二、修改配置檔案
1、切換至cd /opt/software/hadoop/hadoop-2.6.5/etc/hadoop/
目錄下,檢視檔案內容如下:
2、修改mapred-site.xml.template為mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
3、修改mapred-site.xml配置檔案
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <-- 跨平臺配置 --> <property> <name>mapreduce.app-submission.cross-platform</name> <value>true</value> </property>
4、修改yarn-site.xml配置檔案
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>node01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>node02</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>node02:2181,node03:2181,node04:2181</value>
</property>
5、將配置好的檔案傳送給node02,node03,node04節點上
scp -r hadoop-2.6.5 [email protected]:`pwd`
scp -r hadoop-2.6.5 [email protected]:`pwd`
scp -r hadoop-2.6.5 [email protected]:`pwd`
注意:pwd
的用法是切換碟符至hadoop-2.6.5所在的目錄下
6、在node02、node03、node04上啟動zookeeper
zkServer.sh start
若命令無法啟動,說明zookeeper的環境變數沒有配置,需要在zookeeper的bin目錄下啟動./zkServer.sh start
7、在node01上啟動HDFS和Yarn叢集
start-dfs.sh
start-yarn.sh
8、在node02上手動啟動備用的ResourceManager
yarn-daemon.sh start resourcemanager
9、訪問192.168.163.128
頁面如下圖所示
訪問192.168.163.129
頁面如下,說明Yarn叢集啟動成功。
二、叢集測試
測試用例使用MapReduce所提供的WordCount案例,該jar包在
/opt/software/hadoop/hadoop-2.6.5/share/hadoop/mapreduce
執行測試用例:
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /input /output
檢視執行結果:
hdfs dfs -cat /output/_SUCCESS
注:
Input:是HDFS檔案系統中資料所在的目錄
Output:是HDFS檔案系統中不存在的目錄,MapReduce執行的結果檔案會輸出到該目錄下
三、遇到的問題
Yarn搭建過程中由於只需要修改兩個配置檔案,因此沒有出錯。在測試的過程中由於事先建立了output資料夾,導致報錯,錯誤原因是:
org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://mycluster/output already exists