Hadoop HA (四) --------- YARN-HA 配置


一、YARN-HA 工作机制

官方文档http://hadoop.apache.org/docs/r3.1.3/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.htm

YARN-HA 工作机制

在这里插入图片描述

二、配置 YARN-HA 集群

环境准备

  • 环境准备

  • 修改 IP

  • 修改主机名及主机名和 IP 地址的映射

  • 关闭防火墙

  • ssh 免密登录

  • 安装 JDK,配置环境变量等

配置 Zookeeper 集群

在这里插入图片描述

核心问题

A、如果当前 active rm 挂了,其他 rm 怎么将其他 standby rm 上位。核心原理跟 hdfs 一样,利用了 zk 的临时节点。

B、当前 rm 上有很多的计算程序在等待运行,其他的 rm 怎么将这些程序接手过来接着跑。rm 会将当前的所有计算程序的状态存储在 zk 中,其他 rm 上位后会去读取,然后接着跑。

具体配置

A、yarn-site.xml

<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>

	<!--指定 resourcemanager 的逻辑列表-->
	<property>
		<name>yarn.resourcemanager.ha.rm-ids</name>
		<value>rm1,rm2,rm3</value>
	</property>
	
	<!-- ========== rm1 的配置 ========== -->
	<!-- 指定 rm1 的主机名 -->
	<property>
		<name>yarn.resourcemanager.hostname.rm1</name>
		<value>hadoop102</value>
	</property>

	<!-- 指定 rm1 的 web 端地址 -->
	<property>
		<name>yarn.resourcemanager.webapp.address.rm1</name>
		<value>hadoop102:8088</value>
	</property>

	<!-- 指定 rm1 的内部通信地址 -->
	<property>
		<name>yarn.resourcemanager.address.rm1</name>
		<value>hadoop102:8032</value>
	</property>

	<!-- 指定 AM 向 rm1 申请资源的地址 -->
	<property>
		<name>yarn.resourcemanager.scheduler.address.rm1</name>
		<value>hadoop102:8030</value>
	</property>
	
	<!-- 指定供 NM 连接的地址 -->
	<property>
		<name>yarn.resourcemanager.resource-tracker.address.rm1</name>
		<value>hadoop102:8031</value>
	</property>
	
	<!-- ========== rm2 的配置 ========== -->
	<!-- 指定 rm2 的主机名 -->
	<property>
		<name>yarn.resourcemanager.hostname.rm2</name>
		<value>hadoop103</value>
	</property>

	<property>
		<name>yarn.resourcemanager.webapp.address.rm2</name>
		<value>hadoop103:8088</value>
	</property>

	<property>
		<name>yarn.resourcemanager.address.rm2</name>
		<value>hadoop103:8032</value>
	</property>

	<property>
		<name>yarn.resourcemanager.scheduler.address.rm2</name>
		<value>hadoop103:8030</value>
	</property>

	<property>
		<name>yarn.resourcemanager.resource-tracker.address.rm2</name>
		<value>hadoop103:8031</value>
	</property>
	
	<!-- ========== rm3 的配置 ========== -->
	<!-- 指定 rm1 的主机名 -->
	<property>
		<name>yarn.resourcemanager.hostname.rm3</name>
		<value>hadoop104</value>
	</property>
	
	<!-- 指定 rm1 的 web 端地址 -->
	<property>
		<name>yarn.resourcemanager.webapp.address.rm3</name>
		<value>hadoop104:8088</value>
	</property>

	<!-- 指定 rm1 的内部通信地址 -->
	<property>
		<name>yarn.resourcemanager.address.rm3</name>
		<value>hadoop104:8032</value>
	</property>

	<!-- 指定 AM 向 rm1 申请资源的地址 -->
	<property>
		<name>yarn.resourcemanager.scheduler.address.rm3</name>
		<value>hadoop104:8030</value>
	</property>

	<!-- 指定供 NM 连接的地址 -->
	<property>
		<name>yarn.resourcemanager.resource-tracker.address.rm3</name>
		<value>hadoop104:8031</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.ZKRMStateSt ore</value>
	</property>

	<!-- 环境变量的继承 -->
	<property>
		<name>yarn.nodemanager.env-whitelist</name>
		<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLAS SPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
	</property>
	
</configuration>

B、同步更新其他节点的配置信息,分发配置文件

[fancyry@hadoop102 etc]$ xsync hadoop/

启动 YARN

A、在 hadoop102 或者 hadoop103 中执行:

[fancyry@hadoop102 ~]$ start-yarn.sh

B、查看服务状态

[fancyry@hadoop102 ~]$ yarn rmadmin -getServiceState rm1

C、可以去 zkCli.sh 客户端查看 ResourceManager 选举锁节点内容

[fancyry@hadoop102 ~]$ zkCli.sh
[zk: localhost:2181(CONNECTED) 16] get -s
/yarn-leader-election/cluster-yarn1/ActiveStandbyElectorLock

cluster-yarn1rm1 cZxid = 0x100000022
ctime = Tue Jul 14 17:06:44 CST 2020 mZxid = 0x100000022
mtime = Tue Jul 14 17:06:44 CST 2020 pZxid = 0x100000022
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x30000da33080005 dataLength = 20
numChildren = 0

C、web 端查看 hadoop102:8088 和hadoop103:8088 的 YARN 的状态

在这里插入图片描述

三、HADOOP HA 的最终规划

将整个 ha 搭建完成后,集群将形成以下模样

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在森林中麋了鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值