在HDFS-HA的基础上搭建:
etc/hadoop/mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>classic+local+yarn
</property>
</configuration>
etc/hadoop/yarn-site.xml:
<configuration>
<!—让yarn启动服务支持map任务和reduce任务container之间的通信,洗牌 HTTP GET
由nodemanager统一管理的
-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!—启用ResourceManager的高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!—指代ResourceManager HA的两台RM的逻辑名称 -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>rmhacluster1</value>
</property>
<!—指定该高可用ResourceManager下的两台ResourceManager的逻辑名称-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!—指定第一台ResourceManager服务器所在的主机名称 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>node3</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>node4</value>
</property>
<!—指定resourcemanager的web服务器的主机名和端口号-->
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>node3:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>node4:8088</value>
</property>
<!—做ResourceManager HA故障切换用到的zookeeper集群地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>node2:2181,node3:2181,node4:2181</value>
</property>
</configuration>
以上配置在所有的节点上都要配置
在node3或node4上执行:
start-yarn.sh启动resource manager和nodemanager
另一个resourcemanager需要在另一台主机上执行以下命令启动:
yarn-daemon.sh start resourcemanager
停止的时候在node3或node4上执行stop-yarn.sh停止resource manager和nodemanager
另一个resourcemanager需要在另一台主机上执行以下命令启动:
yarn-daemon.sh stop resourcemanager
如果在HDFS-HA基础上运行YARN的RESOURCEMANAGER-HA
- 启动node2、node3、node4上的zookeeper:zkServer.sh start
- 启动HDFS-HA:在任意一台主机上执行:start-dfs.sh
- 在node3上或node4上(有ResourceManager的主机上)执行start-yarn.sh
- 在另一台有ResourceManager的主机上执行:yarn-daemon.sh start resourcemanager
停止过程:
- 在node3上或node4上(有ResourceManager的主机上)执行stop-yarn.sh
- 在另一台有ResourceManager的主机上执行:yarn-daemon.sh stop resourcemanager
- 停止HDFS-HA:在任意一台主机上执行:stop-dfs.sh
- 停止node2、node3、node4上的zookeeper:zkServer.sh stop
cd /opt/hadoop-2.6.5/share/hadoop/mapreduce
yarn jar hadoop-mapreduce-examples-2.6.5.jar wordcount /hello.txt /usr/rm/
3、启动ha的hadoop
a) 在node1\node2\node3上启动三台journalnode
hadoop-daemon.sh start journalnode
b) 任意选择node1或者node2,格式化HDFS
hdfs namenode -format
格式化后,启动namenode进程
hadoop-daemon.sh start namenode
c) 在另一台node2或者node1上同步元数据
hdfs namenode -bootstrapStandby
d) 初始化zookeeper上的内容
hdfs zkfc -formatZK
e) 启动hadoop集群,可在node1到node4这四台服务器上任意位置执行
start-dfs.sh
4、zookeeper操作
在node2或者node3或者node4上运行
zkCli.sh
ls /hadoop-ha/mycluster 查看临时文件
get /hadoop-ha/mycluster/ActiveStandbyElectorLock 查看临时文件的内容
退出zkCli.sh
quit
5、停止集群:
首先
stop-dfs.sh
其次,停止zookeeper集群
node2、node3、node4上执行:
zkServer.sh stop