7.Yarn高可用HA配置

本文深入解析了YARN高可用配置过程,包括YARN-HA的工作机制、集群配置步骤及参数设置。同时,探讨了HDFS Federation架构设计,分析了NameNode的局限性,并提出了Federation解决方案,旨在提升大数据处理系统的稳定性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Yarn高可用配置

1. YARN-HA工作机制

官方文档:http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html

YARN-HA工作机制:

在这里插入图片描述

2. 配置YARN-HA集群
2.1 环境准备

在HDFS-HA集群的基础上配置。

2.2 规划集群
hadoophadoop101hadoop102
NameNodeNameNode
JournalNodeJournalNodeJournalNode
DataNodeDataNodeDataNode
ZKZKZK
ResourceManagerResourceManager
NodeManagerNodeManagerNodeManager
2.3 具体配置
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>

    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>

    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>hadoop</value>
    </property>

    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>hadoop101</value>
    </property>
 
    <!--指定zookeeper集群的地址--> 
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>hadoop:2181,hadoop101:2181,hadoop102: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>



<!-- 日志聚集功能使能 -->
<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
		<name>yarn.log-aggregation.retain-seconds</name>
		<value>604800</value>
</property>
</configuration>

同步更新其他节点的配置信息

启动hdfs
sbin/start-dfs.sh
启动YARN
#在hadoop101中执行
sbin/start-yarn.sh

#在hadoop中执行:
sbin/yarn-daemon.sh start resourcemanager

#查看服务状态
bin/yarn rmadmin -getServiceState rm2

在这里插入图片描述

此时hadoop和hadoop101状态分别是standby和active。并且我们访问http://hadoop:8088/cluster/scheduler的话它会自动跳到http://hadoop101:8088/cluster/scheduler。此时我们杀死hadoop101上的resourcemanager,效果如下:
在这里插入图片描述
在这里插入图片描述

3. HDFS Federation架构设计
3.1 NameNode架构的局限性
Namespace(命名空间)的限制

由于NameNode在内存中存储所有的元数据(metadata),因此单个NameNode所能存储的对象(文件+块)数目受到NameNode所在JVM的heap size的限制。50G的heap能够存储20亿(200million)个对象,这20亿个对象支持4000个DataNode,12PB的存储(假设文件平均大小为40MB)。随着数据的飞速增长,存储的需求也随之增长。单个DataNode从4T增长到36T,集群的尺寸增长到8000个DataNode。存储的需求从12PB增长到大于100PB。

隔离问题

由于HDFS仅有一个NameNode,无法隔离各个程序,因此HDFS上的一个实验程序就很有可能影响整个HDFS上运行的程序。

性能的瓶颈

由于是单个NameNode的HDFS架构,因此整个HDFS文件系统的吞吐量受限于单个NameNode的吞吐量。

HDFS Federation架构设计,能不能有多个NameNode呢?

NameNodeNameNodeNameNode
元数据元数据元数据
Logmachine电商数据/话单数据

在这里插入图片描述

3.2 HDFS Federation应用思考
  1. 不同应用可以使用不同NameNode进行数据管理,如:图片业务、爬虫业务、日志审计业务

  2. Hadoop生态系统中,不同的框架使用不同的NameNode进行管理NameSpace。(隔离性)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值