Yarn【关于配置yarn-site.xml的注意事项】

news2024/11/27 1:39:22

 注意事项

  • 配置文件的<description>表签内容可以删,不影响配置文件的读取。
  • 最重要的<name><value>标签中间的内容一定要好好检查,尤其是在复制别人的配置信息的时候格外要注意:
  • value中有没有空格、有没有因为你打开工具的不同导致部分编码不一致一些符号乱码等问题。
  • 尤其是从 pdf文件 复制内容的时候,很容易把每页的标题页脚复制进去,以及pdf复制的内容中有我们看不出来的回车符\n,我今天就是因为配置Yarn的容量调度器,报错说这可能是由于 YARN 包中缺少必要的类或配置文件,或者与调度器相关的配置属性被设置为无效的值。
2023-06-07 16:33:29,238 INFO org.apache.hadoop.service.AbstractService: Service RMActiveServices failed in state INITED
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Could not instantiate Scheduler: org.apache.hadoop.yarn.server.resourcemanager.scheduler.capaci
ty.CapacityScheduler
at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.createScheduler(ResourceManager.java:473)

很多时候配置文件光看是一点问题没有的,但是需要仔细审阅,不然会让你怀疑到自闭。

如果还是有报错,那说明就是真的错了,这个时候就需要查看报错日志了

关于yarn-site.xml的参数配置 

针对我的电脑(锐龙R7),主要配置三部分

1、ResourceManager

<!-- 1.Yarn-ResourceManager相关配置 ,处理客户端请求,监控管理所有节点(NodeManager)-->
<!-- 选择调度器,默认容量 ,大公司-公平调度器 中小型公司-容量调度器 -->
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
<!-- ResourceManager 处理调度器请求的线程数量,默认 50(也就是用于处理客户端请求的线程数量);
如果提交的任务数大于 50,可以增加该值,但是不能超过 3 台 * 4 线程 = 12 线程(去除其他应用程序实际不能超过 8) -->
<property>
<name>yarn.resourcemanager.scheduler.client.thread-count</name>
<value>8</value>
</property>

2、NodeManager

注意:

并不是说你配置好直接分发给所有节点就完事了,比如NodeManager的参数配置,这是管理每台节点的,如果你的节点的硬件配置(CPU、内存)都差不多,那没问题,你可以配置完yarn-site.xml 后直接分发给集群所有节点。

但是如果你节点的配置相差比较大,一台节点是很好的处理器(比如8核16线程),那么你就需要为它单独配置yarn-site.xml(可以给它配置虚拟核/物理核为 2.0,因为这个参数默认是 1.0)。也就是说我们是根据每台节点的情况不同设置各自的NodeManager参数的。

 

<!-- 2.Yarn-NodeManager相关配置 管理单节点内存、CPU等资源 -->
<!-- 是否让 yarn 自动检测硬件进行配置,默认是 false,如果该节点有很多其他应用程序,建议
手动配置。如果该节点没有其他应用程序,可以采用自动 -->
<property>
<name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
<value>false</value>
</property>
<!-- 是否将虚拟核数当作 CPU 核数,默认是 false(按照物理核数),如果处理器比较好可以考虑用虚拟核做CPU核数 (比如假设1个i7顶两个i5,那就可以开启),如果节点配置差不多就不需要开启-->
<property>
<name>yarn.nodemanager.resource.count-logical-processors-as-cores</name>
<value>false</value>
</property>
<!-- 虚拟核数和物理核数比例,默认是 1.0(前提是上面得设 将虚拟核作为CPU核数 为true) 
注意:这个是针对每个节点配置的,也就是说我们是根据每台节点的情况不同设置各自的NodeManager参数的。
-->
<property>
<name>yarn.nodemanager.resource.pcores-vcores-multiplier</name>
<value>1.0</value>
</property>
<!-- NodeManager 使用内存数,默认 8G,根据我们实际情况(我的内存是4G)修改为 4G 内存 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
<!-- nodemanager 的 CPU 核数,不按照硬件环境自动设定时默认是 8 个,修改为 4 个 -->
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>4</value>
</property>

3、Container

<!-- 3.Yarn-Container相关配置 -->
<!-- 容器最小内存,默认 1G -->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
<!-- 容器最大内存,默认 8G,修改为 2G(不能超过我们NodeManager节点的最大内存) -->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<!-- 容器最小 CPU 核数,默认 1 个 -->
<property>
<name>yarn.scheduler.minimum-allocation-vcores</name>
<value>1</value>
</property>
<!-- 容器最大 CPU 核数,默认 4 个,修改为 2 个(不能超过我们NodeManager的最大CPU核数) -->
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>2</value>
</property>
<!-- 虚拟内存检查,默认打开,修改为关闭 -->
<property>
<description>Whether virtual memory limits will be enforced for
containers.</description>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 虚拟内存和物理内存设置比例,默认 2.1 -->
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>

如何查看Yarn报错信息

比如我的Yarn是在hadoop103上的,查看报错日志就应该去hadoop103上。

默认在我们Hadoop的主目录下有一个logs的目录:

vim编辑器配置文件

显示行号

命令:esc : set number

删除多行内容

删除1到10行内容

命令:esc:1,10d


附上我今天额外添加的配置信息,日后回来检查


<!-- 1.Yarn-ResourceManager相关配置 ,处理客户端请求,监控管理所有节点(NodeManager)-->
<!-- 选择调度器,默认容量 ,大公司-公平调度器 中小型公司-容量调度器 -->
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
<!-- ResourceManager 处理调度器请求的线程数量,默认 50(也就是用于处理客户端请求的线程数量);
如果提交的任务数大于 50,可以增加该值,但是不能超过 3 台 * 4 线程 = 12 线程(去除其他应用程序实际不能超过 8) -->
<property>
<name>yarn.resourcemanager.scheduler.client.thread-count</name>
<value>8</value>
</property>

<!-- 2.Yarn-NodeManager相关配置 管理单节点内存、CPU等资源 -->
<!-- 是否让 yarn 自动检测硬件进行配置,默认是 false,如果该节点有很多其他应用程序,建议
手动配置。如果该节点没有其他应用程序,可以采用自动 -->
<property>
<name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
<value>false</value>
</property>
<!-- 是否将虚拟核数当作 CPU 核数,默认是 false(按照物理核数),如果处理器比较好可以考虑用虚拟核做CPU核数 (比如假设1个i7顶两个i5,那就可以开启),如果节点配置差不多就不需要开启-->
<property>
<name>yarn.nodemanager.resource.count-logical-processors-as-cores</name>
<value>false</value>
</property>
<!-- 虚拟核数和物理核数比例,默认是 1.0(前提是上面得设 将虚拟核作为CPU核数 为true) 
注意:这个是针对每个节点配置的,也就是说我们是根据每台节点的情况不同设置各自的NodeManager参数的。
-->
<property>
<name>yarn.nodemanager.resource.pcores-vcores-multiplier</name>
<value>1.0</value>
</property>
<!-- NodeManager 使用内存数,默认 8G,根据我们实际情况(我的内存是4G)修改为 4G 内存 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
<!-- nodemanager 的 CPU 核数,不按照硬件环境自动设定时默认是 8 个,修改为 4 个 -->
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>4</value>
</property>



<!-- 3.Yarn-Container相关配置 -->
<!-- 容器最小内存,默认 1G -->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
<!-- 容器最大内存,默认 8G,修改为 2G(不能超过我们NodeManager节点的最大内存) -->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<!-- 容器最小 CPU 核数,默认 1 个 -->
<property>
<name>yarn.scheduler.minimum-allocation-vcores</name>
<value>1</value>
</property>
<!-- 容器最大 CPU 核数,默认 4 个,修改为 2 个(不能超过我们NodeManager的最大CPU核数) -->
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>2</value>
</property>
<!-- 虚拟内存检查,默认打开,修改为关闭 -->
<property>
<description>Whether virtual memory limits will be enforced for
containers.</description>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 虚拟内存和物理内存设置比例,默认 2.1 -->
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>

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

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

相关文章

【IT经验实战】教你如何真正有效地学习一门IT技术

前言 在写博客之前&#xff0c;我在CSDN中搜寻了一下 “如何系统学习一门it技术” &#xff0c;琳琅满目&#xff0c;有些借鉴了ChatGPT生成的内容&#xff08;几乎一模一样&#xff09;、有些写得比较笼统没有针对性、有的偏向理论难以实操。 下文内容着实强调求学经历和过程…

SpringCloud组件介绍

一&#xff1a;什么是微服务&#xff08;Microservice&#xff09; 微服务英文名称Microservice&#xff0c;Microservice架构模式就是将整个Web应用组织为一系列小的Web服务。这些小的Web服务可以独立地编译及部署&#xff0c;并通过各自暴露的API接口相互通讯。它们彼此相互协…

小作文--流程图(练习1)

【【雅思写作】带你打破小作文‘流程图’的传说】 https://www.bilibili.com/video/BV1QP411Q7Gh/?share_sourcecopy_web&vd_source78768d4ae65c35ff26534bbaa8afc267 雅思小作文-流程图, 看这一篇就够了! - 冯凯文的文章 - 知乎 https://zhuanlan.zhihu.com/p/35868880 …

跳出零和博弈,AIGC是元宇宙的“催命符”还是“续命丹”?

文 | 智能相对论 作者 | 青月 从科幻小说《雪崩》里走出来的元宇宙&#xff0c;如今正在上演“地价雪崩”。 CoinGecko的一项调查显示&#xff0c;Otherdeed for Otherside、The Sandbox、Decentraland、Somnium Space和Voxels Metaverse 这五款知名元宇宙土地价格近期均出现…

Linux发送接收邮件

目录 一、实验 1.linux用户发送给linux中的其它用户 2.linux用户发送给外网用户 一、实验 1.linux用户发送给linux中的其它用户 &#xff08;1&#xff09;使用命令 yum install -y sendmail 安装sendmail软件 &#xff08;2&#xff09;使用yum install -y mailx 安装 mail…

获奖名单公布|Builder House首尔站及首次线下黑客松圆满收官!

由Sui基金会举办的Builder House首尔站于6月4日圆满收官&#xff0c;为期两天半的活动吸引了来自全球各地的区块链专业人士和Sui生态项目爱好者前来参加。 出席本次活动的Sui基金会成员有活动负责人Anthony、开发者关系工程师Will & Henry & Shayan、增长负责人Koh &a…

高校毕业就业信息管理系统

基于SpringSpringMVCMybatis实现的高校毕业就业信息管理系统 主要模块&#xff1a; 1&#xff09;学生模块&#xff1a; 已投简历、未投简历、录入简历、浏览招聘中岗位、 浏览已投岗位、未提交面试问卷、已提交面试问卷、 收到的就业协议、签订成功的就业协议、个人基本信…

mac docker桌面版k8s启动成功却无法访问

1. 问题复现 在mac使用docker桌面版搭建k8s 成功 但是 kubectl 控制k8s集群命令却无法使用 报错信息如下 使用登录的用户访问 ~ kubectl version W0607 14:32:39.410809 54201 loader.go:221] Config not found: /etc/kubernetes/a…

【Docker】2.Docker安装

文章目录 DockerDocker Official WebsiteDocker InstallDocker Change ImageDocker Change Dir Docker Docker本质其实时LXC之类的增强版&#xff0c;它本身不是容器&#xff0c;而是容器的易用工具。Docker时让容器技术普及开来的最成功的实现。它的主要目标是"Build, S…

6款AI绘画生成器,让你的创作更有灵感

人工智能绘画听起来很高深&#xff0c;其原理是通过集成文本、图片和其他大数据数据来生成信息库&#xff0c;在输入文本描述的要求后&#xff0c;可以找到相应的视觉元素&#xff0c;然后拼凑起来生成符合文本描述的图片。 本文介绍非常好用的6款AI绘画生成工具 1.即时 AI 绘…

从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器

目录 1. list 的基本框架 1.1 list 的结点 1.2 list 构造函数 1.3 push_back 2. list 迭代器的实现 2.1 迭代器的构造 2.2 begin() 和 end() 2.3 重载 ! 和 * 和 2.4 遍历测试&#xff1a; 2.6 operator-> 2.7 operator-- 2.8 const 迭代器 3. list 的增删…

Vulnhub 靶机渗透:SICKOS: 1.2

SICKOS: 1.2 一级目录二级目录三级目录 nmap 扫描端口扫描详细扫描漏洞扫描 web渗透gobuster扫描nikto漏洞扫描思考继续 获得立足点提权总结 一级目录 二级目录 三级目录 https://www.vulnhub.com/entry/sickos-12,144/ 靶机IP&#xff1a;192.168.54.30 kali IP: 192.168.5…

如何修复 SSH Client_loop: send disconnect: Broken pipe Error

动动发财的小手&#xff0c;点个赞吧&#xff01; SSH 是 Secure Shell 的缩写&#xff0c;是一种远程网络协议&#xff0c;用于通过 TCP/IP 网络安全地连接到远程设备&#xff0c;例如服务器和网络设备。 它是一种加密网络协议&#xff0c;可提供强大的加密技术和散列法来保护…

SpringSecurity多源认证之全部交给spring容器

文章目录 一. 前言二. 配置流程2.1 SecurityConfig.class2.2 JwtAuthenticationTokenFilter2.3 AuthenticationManagerProcessingFilter 疑问 一. 前言 相关文章: 认证/支付/优惠劵策略模式-security多源认证 这篇文章没有将自定义的认证管理器注入容器. spring-security2.6.…

【计算机网络详解】——运输层(学习笔记)

&#x1f4d6; 前言&#xff1a;两台主机的通信&#xff0c;实际上两台主机中的应用进程进行通信&#xff0c;而在一台计算机中&#xff0c;用不同的端口号标识不同的应用进程。本节将介绍传输层的相关内容&#xff0c;包括端口号的分配方法、端口号的复用与分用、以及传输层的…

吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记--07 Expanding

07 Expanding 本节示例如何用ChatGPT生成一封电子邮件的回复。 1) 定制化情绪 给定客户评论&#xff0c;我们根据评论内容和情绪产生定制的回复。下面是给定情感&#xff08;positive/negative&#xff09;&#xff0c;让ChatGPT产生相应回复的prompt。 """…

Solidwoks PDM Add-ins (C#) 创建Add-ins

本主题演示如何在Microsoft Visual Studio Enterprise 中使用Visual C#创建并调试add-in。 注意&#xff1a; 因为 SOLIDWORKS PDM Professional无法强制重新加载在 .NET 中编写的add-in程序&#xff0c;则必须重新启动所有客户端计算机&#xff0c;以确保使用最新版本的add-i…

【建议收藏】什么是测试金字塔?如何使用测试金字塔来构建自动化测试体系?

测试金字塔 &#xff08;Test Pyramid&#xff09;是一套使用单元测试&#xff0c;集成测试和端到端测试来构建自动化测试体系的方法。 如下图所示&#xff0c;在金字塔的最下方是单元测试&#xff0c;中段是集成测试&#xff0c;最上方是端到端测试。单元测试实现的成本最低&…

【论文笔记】SAM3D: Zero-Shot 3D Object Detection via Segment Anything Model

原文链接&#xff1a;https://arxiv.org/pdf/2306.02245.pdf 1.引言 分割一切模型&#xff08;SAM&#xff09;作为视觉领域的基石模型&#xff0c;有强大的泛化性&#xff0c;能解决很多2D视觉问题。但是SAM是否可以适用于3D视觉任务&#xff0c;仍需要被探索。   目前几乎…

深蓝学院C++基础笔记 第 2 章 对象和基本类型

第 2 章 对象和基本类型 1. 从初始化/赋值语句谈起 初始化 / 赋值语句是程序中最基本的操作&#xff0c;其功能是将某个值与一个对象关联起来 – 值&#xff1a;字面值、对象&#xff08;变量或常量&#xff09;所表示的值…… – 标识符&#xff1a;变量、常量、引用…… –…