架構(gòu)圖解析
ResourceManager會(huì)在內(nèi)存中存放各個(gè)nodeManager節(jié)點(diǎn)資源信息、任務(wù)運(yùn)行狀態(tài)信息桃煎。通過ZooKeeper集群组底,配置一個(gè)activeRM和standbyRM。activeRM把狀態(tài)這些狀態(tài)信息寫入到zookeeper集群中弊添。
如果ActiveRM被關(guān)閉,故障轉(zhuǎn)移捌木,StandbyRM直接從zookeeper去讀取狀態(tài)油坝。
ResourceManager HA 配置部署(在搭建完zookeeper集群后)
- 配置文件
core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/app/hadoop-2.5.0/data/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata-00:8020</value>
</property>
yarn-site.xml
<!-- 指定RM HA可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 設(shè)置集群ID-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn-cluster</value>
</property>
<!-- 給集群ID下的節(jié)點(diǎn)設(shè)置名稱-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 指定具體的RM節(jié)點(diǎn)-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>bigdata-01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>bigdata-02</value>
</property>
<!-- 指定zookeeper集群節(jié)點(diǎn)和端口-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>bigdata-00:2181,bigdata-01:2181,bigdata-02:2181</value>
</property>
<!-- 在RM節(jié)點(diǎn)接管后,任務(wù)狀態(tài)可以恢復(fù)-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!-- 設(shè)置存儲(chǔ)yarn中狀態(tài)信息的地方刨裆,默認(rèn)為hdfs澈圈,這里設(shè)置為zookeeper-->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<!-- 使在yarn上能夠運(yùn)行mapreduce_shuffle程序-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
-
啟動(dòng)各個(gè)節(jié)點(diǎn)的服務(wù),最后相關(guān)后臺(tái)進(jìn)程如下
運(yùn)行wordcount程序測(cè)試RM HA崔拥。
- 在namenode節(jié)點(diǎn)上運(yùn)行MR程序
[wulei@bigdata-00 hadoop-2.5.0]$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /test/ /test/out
- 在運(yùn)行到map端時(shí)极舔,關(guān)閉節(jié)點(diǎn)bigdata-01的RM進(jìn)程
[wulei@bigdata-01 hadoop-2.5.0]$ jps
8214 DataNode
8569 NodeManager
5195 QuorumPeerMain
8316 ResourceManager
8669 Jps
[wulei@bigdata-01 hadoop-2.5.0]$ kill -9 8316
-
查看bigdata-02節(jié)點(diǎn)的resoucemanager的web管理界面×赐撸可以發(fā)現(xiàn),mapreduce程序仍然可以繼續(xù)運(yùn)行至結(jié)束。