Hadoop Yarn 核心调优参数

文章目录

      • 测试集群环境说明
      • Yarn 核心配置参数
        • 1. 调度器选择
        • 2. ResourceManager 调度器处理线程数量设置
        • 3. 是否启用节点功能的自动检测设置
        • 4. 是否将逻辑处理器当作物理核心处理器
        • 5. 设置物理核心到虚拟核心的转换乘数
        • 6. 设置 NodeManager 使用的内存量
        • 7. 设置 NodeManager 节点虚拟核心数量
        • 8. 设置每个容器的最小与最大内存
        • 9. 设置每个容器的最小与最大虚拟CPU核心
        • 10. 是否开启虚拟内存检查
        • 11. 设置虚拟内存与物理内存比例
      • 配置信息查看

测试集群环境说明

服务器介绍

机器名称内网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 配置信息:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/52964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【微服务】04-Polly实现失败重试和限流熔断

文章目录 1. Polly实现失败重试1.1 Polly组件包1.2 Polly的能力1.3 Polly使用步骤1.4 适合失败重试的场景1.5 最佳实践 2.Polly实现熔断限流避免雪崩效应2.1 策略类型2.2 组合策略 1. Polly实现失败重试 1.1 Polly组件包 PollyPolly.Extensions.HttpMicrosoft.Extensions.Htt…

ppt转pdf免费的工具哪个好用?ppt在线转pdf的方法分享

在工作和学习中&#xff0c;将PPT文件转换为PDF格式具有重要意义。PDF文件的大小较小&#xff0c;适用于各种平台和设备&#xff0c;保持了原始文件的内容和格式&#xff0c;具有广泛的可读性和兼容性。那么小编就来为大家详细地说一说“ppt转pdf免费的工具哪个好用?ppt在线转…

HTML的label标签有什么用?

当你想要将表单元素&#xff08;如输入框、复选框、单选按钮等&#xff09;与其描述文本关联起来&#xff0c;以便提供更好的用户界面和可访问性时&#xff0c;就可以使用HTML中的<label>标签。<label>标签用于为表单元素提供标签或标识&#xff0c;使用户能够更清…

【微服务】05-网关与BFF(Backend For Frontend)

文章目录 1.打造网关1.1 简介1.2 连接模式1.3 打造网关 2.身份认证与授权2.1 身份认证方案2.1.1 JWT是什么2.1.2 启用JwtBearer身份认证2.1.3 配置身份认证2.1.4 JWT注意事项 1.打造网关 1.1 简介 BFF(Backend For Frontend)负责认证授权&#xff0c;服务聚合&#xff0c;目标…

软考高级系统架构设计师系列论文八十:论企业信息化战略规划技术

软考高级系统架构设计师系列论文八十:论企业信息化战略规划技术 一、企业信息化相关知识点二、摘要三、正文四、总结一、企业信息化相关知识点 软考高级系统架构设计师:企业信息化战略与实施

解决抖音semi-ui的Input无法获取到onChange事件

最近在使用semi-ui框架的Input实现一个上传文件功能时遇到了坑&#xff0c;就是无法获取到onChange事件&#xff0c;通过console查看只是拿到了一个文件名。但若是把<Input>换成原生的<input>&#xff0c;就可以正常获取到事件。仔细看了下官方文档&#xff0c;发现…

Java IDEA Web 项目 1、创建

环境&#xff1a; IEDA 版本&#xff1a;2023.2 JDK&#xff1a;1.8 Tomcat&#xff1a;apache-tomcat-9.0.58 maven&#xff1a;尚未研究 自行完成 IDEA、JDK、Tomcat等安装配置。 创建项目&#xff1a; IDEA -> New Project 选择 Jakarta EE Template&#xff1a;选择…

上传WSL项目到gitlab

上传WSL项目到gitlab 设置ssh将SSH公钥添加到Gitlab 将WSL上的代码上传到gitlab确保在WSL环境中安装了git下面是上传代码到GitLab的具体步骤&#xff1a; 可能遇到的各种错误 设置ssh Gitlab添加SSH KEY 什么是SSH ? SSH 是一种网络协议&#xff0c;具备协议级别的认证及会话…

【Hello Network】DNS协议 NAT技术 代理服务器

本篇博客简介&#xff1a;介绍DNS协议 NAT技术和代理服务器 网络各协议补充 DNSDNS背景DNS介绍DNS总结域名简介 NAT技术NAT技术背景NAT IP转换过程NAPTNAT技术缺陷NAT和代理服务器 网络协议总结应用层传输层网络层数据链路层 DNS DNS是一整套从域名映射到IP的系统 DNS背景 为…

情人节特别篇:用c++弹奏音乐“海阔天空”与“孤勇者”

W...Y的主页 &#x1f495; 代码库分享 &#x1f60a; 目录 孤勇者 海阔天空 今天是2023年8月22日七夕情人节&#xff0c;但是对我来说就是再普通不过的日子。我相信有很多人期待这一天的到来&#xff0c;和自己的对象出去享受快乐时光。但是我只有一个人独孤的度过短暂的时…

Nginx的HTTPS部署与安全性能优化

Nginx作为一款高性能的Web服务器和反向代理服务器&#xff0c;被广泛用于应用部署和负载均衡。在安全环保意识的逐渐提高下&#xff0c;HTTPS也成为现代Web应用中必不可少的一环。本篇文章将重点介绍Nginx的HTTPS部署和安全性能优化。 一、Nginx的HTTPS部署 证书申请 首先需要去…

vscode c++编译时报错

文章目录 1. 报错内容&#xff1a;GDB Failed with message;2. 报错内容&#xff1a;Unable to start debugging. 1. 报错内容&#xff1a;GDB Failed with message; 例如上图报错&#xff0c;一般就是编译器选择错误&#xff0c;有两种方法解决&#xff1a; 打开 tasks.json …

前端面试:【移动端开发】PWA、Hybrid App和Native App的比较

在移动端开发中&#xff0c;开发者有多种选择&#xff0c;包括渐进式Web应用&#xff08;PWA&#xff09;&#xff0c;混合应用&#xff08;Hybrid App&#xff09;和原生应用&#xff08;Native App&#xff09;。每种方法都有其独特的优势和适用场景。本文将对它们进行比较&a…

【随笔】如何使用阿里云的OSS保存基础的服务器环境

使用阿里云OSS创建一个存储仓库&#xff1a;bucket 在Linux上下载并安装阿里云的ossutil工具 // 命令行&#xff0c;是linux环境 3. 安装ossutil。sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash 说明:安装过程中&#xff0c;需要使用解压工具…

Django(2)-编写你的第一个 Django 应用

本教程的目的是创建一个网络投票应用程序。 它将由两部分组成&#xff1a; 一个让人们查看和投票的公共站点。 一个让你能添加、修改和删除投票的管理站点。 创建应用 $ python manage.py startapp polls每一个应用是一个python包&#xff0c;一个项目可以包含多个应用。 …

百度Apollo:引领自动驾驶技术的创新与突破

文章目录 前言一、技术创新二、开放合作三、生态建设四、安全可靠性总结 前言 随着科技的迅猛发展&#xff0c;自动驾驶技术正成为未来交通领域的重要发展方向。在这个领域中&#xff0c;百度Apollo作为中国领先的自动驾驶平台&#xff0c;以其卓越的创新能力和开放合作精神&a…

深入Golang之Mutex

深入Golang之Mutex 基本使用方法 可以限制临界区只能同时由一个线程持有。 直接在流程结构中使用 lock、unlock嵌入到结构中&#xff0c;然后通过结构体的 mutex 属性 调用 lock、unlock嵌入到结构体中&#xff0c;但是是直接在需要锁定的资源方法中使用&#xff0c;让外界无…

hive分区表 静态分区和动态分区

一、静态分区 现有数据文件 data_file 如下&#xff1a; 2023-08-01,Product A,100.0 2023-08-05,Product B,150.0 2023-08-10,Product A,200.0 1、创建分区表 CREATE TABLE sales (sale_date STRING,product STRING,amount DOUBLE ) PARTITIONED BY (sale_year INT, sale_mon…

WPF基础入门-Class2-样式

WPF基础入门 Class2&#xff1a;样式 1、内联样式&#xff1a;优先度最高 <Grid><StackPanel><!--内联样式优先度高--><Button Background"Red" Height"10" Width"100"FontSize"20"Content"SB">…

nginx 中新增url请求参数

1、nginx中新增配置&#xff1a; set $args "$args&参数名参数值"; 示例&#xff1a; set $args "$args&demo1cn_yaojin&demo2123123&myip$remote_addr"; location / {add_header Access-Control-Allow-Origin *;add_header Access-Contro…