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.rhkb.cn/news/110430.html

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

相关文章

ant-vue1.78版a-auto-complete表单自动搜索返回列表中的关键字标红

a-auto-complete表单自动搜索返回列表中的关键字标红 通常在做关键字标红的场景&#xff0c;都是后端返回html结构&#xff0c;前端直接渲染实现&#xff0c;但是如果需要前端处理的话&#xff0c;实现也是很简单的&#xff0c;接下来我直接上应用场景吧 应用场景就是通过关键…

GaussDB技术解读系列:高级压缩之OLTP表压缩

8月16日&#xff0c;第14届中国数据库技术大会&#xff08;DTCC2023&#xff09;在北京国际会议中心顺利举行。在GaussDB“五高两易”核心技术&#xff0c;给世界一个更优选择的专场&#xff0c;华为云数据库GaussDB首席架构师冯柯对华为云GaussDB数据库的高级压缩技术进行了详…

centos7搭建apache作为文件站后,其他人无法访问解决办法

在公司内网的一个虚拟机上搭建了httpsd服务&#xff0c;准备作为内部小伙伴们的文件站&#xff0c;但是搭建好之后发现别的小伙伴是无法访问我机器的。 于是寻找一下原因&#xff0c;排查步骤如下&#xff1a; 1.netstat -lnp 和 ps aux 先看下端口和 服务情况 发现均正常 2.…

淘宝商品数据采集(如何快速获取淘宝商品信息),淘宝API接口申请指南

淘宝作为国内的电商平台&#xff0c;拥有海量的商品信息。对于想要进行淘宝商品数据采集的人来说&#xff0c;如何快速获取淘宝商品信息是一个重要的问题。本文将介绍一些快速获取淘宝商品信息的方法。 1. 使用淘宝开放平台PI 淘宝开放平台提供了多种PI接口&#xff0c;可以通…

【微服务部署】01-Kubernetes部署流程

文章目录 部署1. Kubernetes是什么2. Kubernetes的优势3. 环境搭建4. 应用部署 部署 1. Kubernetes是什么 Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源系统 2. Kubernetes的优势 自动化容器部署资源管理与容器调度服务注册发现与负载均衡内置配置与秘钥…

【java】【springboot】【idea】springboot项目pom.xml 灰色下划线

解决方案&#xff1a; 这里我们找到了原因&#xff0c;就是因为选择了Ignored Files导致pom.xml文件被设置在maven忽略文件清单中&#xff0c;所以我们将打勾的选项取消&#xff0c;点击Apply,然后点击OK

一文解析:共享WiFi项目到底怎么样呢?

大家都知道&#xff0c;现代社会已经离不开互联网的便利&#xff0c;而WiFi的普及更是提升了人们的生活质量和工作效率。然而&#xff0c;面对庞大的用户群体和不断增长的网络需求&#xff0c;无论人们到哪都是习惯性的连接上wifi。而共享WiFi的出现&#xff0c;正是满足了大众…

Linux基础(一)

1.操作系统概念 人与计算机交流的中介 管理和控制计算机中硬件和软件资源 处于上层应用程序和底层硬件之间的软件平台 2.操作系统组成 内核&#xff1a;直接控制管理硬件 内核直接识别计算机二进制语言 解释器&#xff1a;把c c java python等语言解释成二进制&#xff…

Leetcode每日一题:1267. 统计参与通信的服务器(2023.8.24 C++)

目录 1267. 统计参与通信的服务器 题目描述&#xff1a; 实现代码与解析&#xff1a; 写法一&#xff1a;两次遍历 hash 原理思路&#xff1a; 写法二&#xff1a;三次遍历 原理思路&#xff1a; 1267. 统计参与通信的服务器 题目描述&#xff1a; 这里有一幅服务器分…

215. 数组中的第K个最大元素

题目描述 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 **k** 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2…

【Axure教程】调用日期选择器并筛选中继器表格

今天教大家在Axure里怎么调用代码调用浏览器的日期选择器并对对中继器表格进行日期区间的筛选。调用浏览器日期选择器的好处是&#xff0c;可以选择真实的日期&#xff0c;包括某年某月某日是星期几&#xff0c;哪个二月是29天……都是真实的&#xff0c;那不同的浏览器日期选择…

kafka复习:(22)一个分区只能被消费者组中的一个消费者消费吗?

默认情况下&#xff0c;一个分区只能被消费者组中的一个消费者消费。但可以自定义PartitionAssignor来打破这个限制。 一、自定义PartitionAssignor. package com.cisdi.dsp.modules.metaAnalysis.rest.kafka2023;import org.apache.kafka.clients.consumer.internals.Abstrac…

JDK配置环境变量(超详细)

先安装JDK再配置环境变量&#xff01; JDK可以简单理解为就是java&#xff0c;JDK包含了java项目运行所需要的运行环境JRE&#xff0c;编译运行java程序的java虚拟机JVM。 jdk-8u201-windows-x64安装包&#xff08;jdk1.8&#xff09;&#xff1a; 提取码&#xff1a;19xv …

外部库/lib/maven依赖项 三者关系

外部库(存放项目初始配置的jar包)(它的文件夹里并没有包含lib文件夹的引的外部的依赖的jar包) lib(存放外部导入到项目的依赖的jar包) maven依赖项(管理项目所有的jar包依赖) 三者存放jar包的关系 项目所依赖的全部的jar包 maven依赖项的jar包 外部库中的jar包 lib中的…

文件夹无法删除?简单3招,轻松解决问题!

“我电脑里有一个文件夹占用了很大的内存&#xff0c;我想将它删除来释放一些内存&#xff0c;但是根本没法删除&#xff0c;为什么会这样呢&#xff1f;文件夹无法删除应该怎么办呢&#xff1f;” 在日常电脑使用中&#xff0c;有时候会遇到文件夹无法删除的情况&#xff0c;这…

【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习)

使用 Terraform 创建应用程序负载均衡器 实验步骤 前提条件 安装 Terraform&#xff1a; 地址 下载仓库代码模版 本实验代码位于 task_elb 文件夹中。 变量文件 variables.tf 在上面的代码中&#xff0c;您将声明&#xff0c;aws_access_key&#xff0c;aws_secret_key…

深入理解ArrayList的动态扩容机制及应用

在java编程中&#xff0c;数据结构起着至关重要的作用&#xff0c;而ArrayList作为一种常用的动态数组&#xff0c;为我们在处理数据时提供了便利。其中&#xff0c;其独特的动态扩容机制更是为其赢得了广泛的应用。我们不管在工作还是面试中&#xff0c;都会遇到ArrayList&…

Nginx详解 二:配置文件部分

文章目录 1. Nginx 配置文件1.1 主配置文件1.2 子配置文件1.3 全局配置1.3.1 修改启动的进程数1.3.2 cpu和work进程绑定&#xff08;nginx调优&#xff09;1.3.3 修改PID路径1.3.4 nginx进程的优先级&#xff08;work进程的优先级&#xff09;1.3.5 调试work进程打开的文件的个…

聚观早报|2023戴尔科技峰会助力创新;小米汽车电池供应商敲定

【聚观365】8月23日消息 2023戴尔科技峰会助力企业创新 小米汽车电池供应商敲定中创新航和宁德时代 iPhone15预计有6种配色 王小川卸任自动驾驶企业禾多科技董事 特斯拉动力总成副总裁宣布离职 2023戴尔科技峰会助力企业创新 近日“新生万物 数实新格局 —— 2023戴尔科技…

周鸿祎为360智脑招贤纳士;LLM时代的选择指南;Kaggle大语言模型实战;一文带你逛遍LLM全世界 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 思否「齐聚码力」黑客马拉松&#xff0c;用技术代码让生活变得更美好 主页&#xff1a;https://pages.segmentfault.com/google-hacka…