Hadoop Yarn 核心调优参数

测试集群环境说明

服务器介绍

机器名称内网IP内存CPU承载节点
master192.168.10.1044NodeManager、DataNode、NameNode
slave1192.168.10.1144NodeManager、DataNode、ResourceManager
slave2192.168.10.1244NodeManager、DataNode、SecondaryNameNode

操作系统均为:CentOS 7.5

组件介绍

  • jdk1.8
  • hadoop 3.1.3

Yarn 核心配置参数

1. 调度器选择

这里选用默认调度器(容量调度器)。

<property>
	<name>yarn.resourcemanager.scheduler.class</name>
	<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
2. ResourceManager 调度器处理线程数量设置

ResourceManager 处理调度器请求的线程数量,默认 50

如果提交的任务数大于 50,可以增加该值,但是不能超过总线程数量。

在当前测试环境中,我们共配置了 3 台服务器,4 核 CPU,共有 12 线程,但时不能直接设置为 12,而应该设置为 8(三分之二),剩余资源保障其它应用程序的正常运行。

<property>
	<name>yarn.resourcemanager.scheduler.client.thread-count</name>
	<value>8</value>
</property>
3. 是否启用节点功能的自动检测设置

顾名思义,就是自动检测当前系统配置,自动进行资源配置,默认为 false

在该系统内没有其它应用程序运行的情况下,可以开启该参数。

<property>
	<name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
	<value>false</value>
</property>
4. 是否将逻辑处理器当作物理核心处理器

指定逻辑处理器(虚拟核数)是否应该被视为独立的核心资源,默认为 false

物理核心处理器可以给集群带来更强的处理性能,而逻辑处理器能够提供更多的并发。

<property>
	<name>yarn.nodemanager.resource.count-logical-processors-as-cores</name>
	<value>false</value>
</property>
5. 设置物理核心到虚拟核心的转换乘数

默认情况下,乘数为 1.0,这意味着一个物理核心会被视为一个虚拟核心。

如果希望将一个物理核心映射为多个虚拟核心,可以将这个值调整为大于 1 的值。

可以根据应用程序需求、资源利用率以及性能测试结果来决定是否调整这个乘数。

<property>
	<name>yarn.nodemanager.resource.pcores-vcores-multiplier</name>
	<value>1.0</value>
</property>
6. 设置 NodeManager 使用的内存量

用于指定每个 NodeManager 节点可以使用的内存量,以兆字节(MB)为单位,默认 8G,修改为单台机器对应的内存量。

<property>
	<name>yarn.nodemanager.resource.memory-mb</name>
	<value>4096</value>
</property>
7. 设置 NodeManager 节点虚拟核心数量

用于指定每个 NodeManager 节点可以使用的虚拟核心数量(vCores),默认为 8 个,修改为单台机器对应的物理核心数量。

<property>
	<name>yarn.nodemanager.resource.cpu-vcores</name>
	<value>4</value>
</property>
8. 设置每个容器的最小与最大内存

用于设置每个容器(task或应用程序的运行实例)所能够分配到的最小与最大内存量。

最小内存默认为 1024 MB;

最大内存默认为 8192 MB,推荐设置为系统最大内存的一半;

<!-- 容器最小内存-->
<property>
	<name>yarn.scheduler.minimum-allocation-mb</name>
	<value>1024</value>
</property>

<!-- 容器最大内存-->
<property>
	<name>yarn.scheduler.maximum-allocation-mb</name>
	<value>2048</value>
</property>
9. 设置每个容器的最小与最大虚拟CPU核心

设置每个容器(任务或应用程序的运行实例)所能够分配到的最小与最大 CPU 虚拟核心数(vCores)。

最小虚拟核心数默认为 1 个;

最大虚拟核心数默认为 4 个,推荐设置为系统最大物理核心的一半;

<!-- 容器最小虚拟核心数 -->
<property>
	<name>yarn.scheduler.minimum-allocation-vcores</name>
	<value>1</value>
</property>

<!-- 容器最大虚拟核心数 -->
<property>
	<name>yarn.scheduler.maximum-allocation-vcores</name>
	<value>2</value>
</property>
10. 是否开启虚拟内存检查

用于指定是否启用虚拟内存检查来限制每个容器使用的虚拟内存量。

默认为 true,NodeManager 将会在分配容器资源时,考虑每个容器使用的虚拟内存量。

如果一个容器的虚拟内存使用量超过了预先配置的限制,NodeManager 会采取措施来处理这种情况,通常是终止或杀死该容器。

在这里我调整为 false

<property>
	<name>yarn.nodemanager.vmem-check-enabled</name>
	<value>false</value>
</property>
11. 设置虚拟内存与物理内存比例

用于设置虚拟内存与物理内存之间的比率,默认为 2.1 倍。

这个参数的目的是限制应用程序可以使用的虚拟内存量,以避免某个应用程序无限制地占用虚拟内存资源,导致其他任务和应用程序受影响。

<property>
	<name>yarn.nodemanager.vmem-pmem-ratio</name>
	<value>2.1</value>
</property>

配置信息查看

完成配置后,分发 yarn 文件,重启 Hadoop,查看 yarn 配置信息:

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
YARN(Yet Another Resource Negotiator)是Hadoop 2.x中的一个集群资源管理器,它的任务是为集群中的应用程序分配资源,并协调集群中的计算资源。对于YARN集群而言,参数调优是非常重要的,它可以极大地影响集群的性能和稳定性。下面介绍一些常见的YARN参数调优方法: 1. yarn.scheduler.maximum-allocation-mb:该参数定义了YARN管理的每个容器的最大内存大小,默认为8192 MB。可以根据集群内存大小及应用程序内存需求进行调整。 2. yarn.scheduler.minimum-allocation-mb:该参数定义了YARN管理的每个容器的最小内存大小,默认为1024 MB。可以根据应用程序内存需求进行调整。 3. yarn.nodemanager.resource.memory-mb:该参数定义了每个节点管理器可以使用的最大内存大小,默认为8192 MB。可以根据节点物理内存大小进行调整。 4. yarn.nodemanager.resource.cpu-vcores:该参数定义了每个节点管理器可以使用的最大CPU核心数,默认为8个。可以根据节点CPU核心数进行调整。 5. yarn.scheduler.minimum-allocation-vcores:该参数定义了YARN管理的每个容器的最小CPU核心数,默认为1个。可以根据应用程序CPU需求进行调整。 6. yarn.scheduler.maximum-allocation-vcores:该参数定义了YARN管理的每个容器的最大CPU核心数,默认为32个。可以根据集群CPU核心数进行调整。 7. yarn.nodemanager.local-dirs和yarn.nodemanager.log-dirs:这两个参数定义了节点管理器的本地目录和日志目录。可以根据节点磁盘空间大小和性能进行调整。 8. yarn.nodemanager.delete.debug-delay-sec:该参数定义了节点管理器在删除容器后等待的时间,默认为0秒。可以根据节点磁盘空间大小和性能进行调整。 9. yarn.application.max-attempts:该参数定义了应用程序失败后最大的重试次数,默认为2次。可以根据应用程序的重要性进行调整。 10. yarn.nodemanager.vmem-check-enabled:该参数定义了节点管理器是否启用虚拟内存检查,默认为true。可以根据应用程序的内存特性进行调整。 总之,不同的YARN集群需要根据自身的硬件配置和应用程序需求进行参数调优,以达到最佳的性能和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

月亮给我抄代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值