一、文件配置
yarn-site.xml(直接覆盖 configuration 内容)
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--启用resourcemanager ha-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--声明两台resourcemanager的地址-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster-yarn1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop102</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop103</value>
</property>
<!--指定zookeeper集群的地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop102:2181,hadoop103:2181,hadoop104:2181</value>
</property>
<!--启用自动恢复-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!--指定resourcemanager的状态信息存储在zookeeper集群-->
<property>
<name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
</configuration>
修改完之后分发该文件到其他节点
二、启动
- 启动 Zookeeper 集群(如果已经启动则跳过此步):bin/zkServer.sh start。注意:zookeeper 没有自带的群起脚本,需要在各个机器上分别启动
- 启动 HDFS 集群:sbin/start-dfs.sh
- 启动 rm1 的 yarn :sbin/start-yarn.sh
- 启动 rm2 的 yarn:sbin/yarn-daemon.sh start resourcemanager
- 查看服务状态:bin/yarn rmadmin -getServiceState rm1
- 查看 web 端页面:Hadoop102:8088
注意:yarn HA 启动时,只启动一个 rm ,因为 yarn 启动脚本并不会远程登陆到其他机器上启动。因此即使配置了 HA ,yarn 也只会启动本机器的 yarn ,另外一个需要手动启动