以下只是对yarn配置文件(yarn.site.xml)简单的一个配置

<configuration>
<!-- rm失联后重新链接的时间 -->
<property>
<name>yarn.resourcemanager.connect.retry-interval.ms</name>
<value></value> </property>
<property>
<!-- 启用RM高可用 -->
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
<description>启动Yran HA模式</description>
</property>
<property>
<!-- 指定两台RM主机名标识符 -->
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
<description>resourcemanager id</description>
</property>
<property>
<!--Ha功能,需要一组zk地址,用逗号分隔。被ZKFailoverController使用于自动失效备援failover。 -->
<name>ha.zookeeper.quorum</name>
<value>master:,slave1:,slave2:</value>
<description>Zookeeper 队列</description>
</property>
<property>
<!--开启失效转移 -->
<name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
<value>true</value>
<description>开启 ResourceManager 故障自动切换</description>
</property>
<property>
<!-- 指定rm1的主机名-->
<name>yarn.resourcemanager.hostname.rm1</name>
<value>master</value>
<description>rm1 的hostname</description>
</property>
<property>
<!-- 指定rm2的主机名-->
<name>yarn.resourcemanager.hostname.rm2</name>
<value>slave1</value>
<description>rm2 的hostname</description>
</property>
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm1</value> <description>本机的rmid</description>
</property>
<property>
<!-- RM故障自动恢复 -->
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<!-- 被RM用于状态存储的ZooKeeper服务器的主机:端口号,多个ZooKeeper的话使用逗号分隔。 -->
<name>yarn.resourcemanager.zk-state-store.address</name>
<value>master:,slave1:,slave2:</value>
</property>
<property>
<!-- 配置RM状态信息存储方式,有MemStore和ZKStore。 -->
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<property>
<!--使用ZK集群保存状态信息,指定zookeeper队列 -->
<name>yarn.resourcemanager.zk-address</name>
<value>master:,slave1:,slave2:</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>my-yarn</value>
<description>集群ID</description>
</property>
<property>
<!-- schelduler失联等待连接时间,以毫秒为单位-->
<name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name>
<value></value>
</property> <description>以下开始对 rm1 进行配置,rm2 改成对应的值!!!</description>
<property>
<!-- 客户端通过该地址向RM提交对应用程序操作 -->
<name>yarn.resourcemanager.address.rm1</name>
<value>master:</value>
</property>
<property>
<!--ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。 -->
<name>yarn.resourcemanager.scheduler.address.rm1</name>
<value>master:</value>
</property>
<property>
<!-- RM HTTP访问地址,查看集群信息-->
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>master:</value>
</property>
<property>
<!-- NodeManager通过该地址交换信息 -->
<name>yarn.resourcemanager.resource-tracker.address.rm1</name>
<value>master:</value>
</property>
<property>
<!--管理员通过该地址向RM发送管理命令 -->
<name>yarn.resourcemanager.admin.address.rm1</name>
<value>master:</value>
</property>
<property>
<name>yarn.resourcemanager.ha.admin.address.rm1</name>
<value>master:</value>
</property>
<property>
<name>yarn.resourcemanager.address.rm2</name>
<value>slave1:</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm2</name>
<value>slave1:</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>slave1:</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm2</name>
<value>slave1:</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address.rm2</name>
<value>slave1:</value>
</property>
<property>
<name>yarn.resourcemanager.ha.admin.address.rm2</name>
<value>slave1:</value>
</property>
<property>
<!-- 为了能够运行MapReduce程序,需要让各个NodeManager在启动时加载shuffle server,shuffle server实际上是Jetty/Netty Server,Reduce Task通过该server从各个NodeManager上远程拷贝Map Task产生的中间结果。下面增加的两个配置均用于指定shuffle serve。 -->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<!--中间结果存放位置,类似于1.0中的mapred.local.dir。注意,这个参数通常会配置多个目录,已分摊磁盘IO负载 -->
<name>yarn.nodemanager.local-dirs</name>
<value>/home/hadoop/hadoop-2.9./data/nm</value>
</property>
<property>
<!-- yarn node 运行时日志存放地址,记录container日志,并非nodemanager日志存放地址 -->
<name>yarn.nodemanager.log-dirs</name>
<value>/home/hadoop/hadoop-2.9./log/yarn</value>
</property>
<property>
<name>mapreduce.shuffle.port</name>
<value></value>
</property>
<property>
<!-- 以轮训方式寻找活动的RM所使用的类-->
<name>yarn.client.failover-proxy-provider</name>
<value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>
</property> <property>
<name>yarn.resourcemanager.ha.automatic-failover.zk-base-path</name>
<value>/yarn-leader-election</value>
</property>
<property>
<!-- 每使用一个物理cpu,可以使用的虚拟cpu的比例,默认为2-->
<name>yarn.nodemanager.vcores-pcores-ratio</name>
<value></value>
</property> <property>
<!-- 每单位的物理内存总量对应的虚拟内存量,默认是2.,表示每使用1MB的物理内存,最多可以使用2.1MB的虚拟内存总量。-->
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>5.2</value>
</property>
<!--
()yarn.nodemanager.vmem-pmem-ratio 任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.
() yarn.nodemanager.pmem-check-enabled 是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
() yarn.nodemanager.vmem-check-enabled 是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。 --> <property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property> <property>
<!-- 表示该节点上YARN可使用的虚拟CPU个数,默认是8,注意,目前推荐将该值设值为与物理CPU核数数目相同。如果你的节点CPU核数不够8个,则需要调减小这个值,而YARN不会智能的探测节点的物理CPU总数 -->
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value></value>
</property>
<property>
<!-- 表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节>点的物理内存总量。 -->
<name>yarn.nodemanager.resource.memory-mb</name>
<value></value>
</property> <property>
<!-- 单个任务可申请的最少物理内存量,默认是1024(MB),如果一个任务申请的物理内存量少于该值,则该对应的值改为这个数 -->
<name>yarn.scheduler.minimum-allocation-mb</name>
<value></value>
</property>
<property>
<!-- 单个任务可申请的最多物理内存量,默认是8192(MB)。 默认情况下,YARN采用了线程监控的方法判断任务是否超量使用内存,一旦发现超量,则直接将其杀死。由于Cgroups对内存的控制缺乏灵活性(即任务任何时刻不能超过内存上限,如果超过,则直接将其杀死或者报OOM),而Java进程在创建瞬间内存将翻倍,之后骤降到正常值,这种情况下,采用线程监控的方式更加灵活(当发现进程树内存瞬间翻倍超过设定值时,可认为是正常现象,不会将任务杀死),因此YARN未提供Cgroups内存隔离机制 -->
<name>yarn.scheduler.maximum-allocation-mb</name>
<value></value>
</property> </configuration>

补充:

1、yarn监控nodemanager的运行状况

Hadoop提供了一种机制,管理员可以通过该机制定期运行管理员提供的脚本以确定节点是否健康。

管理员可以通过在脚本中执行对其选择的任何检查来确定节点是否处于正常状态。如果脚本检测到节点处于不健康状态,则必须以字符串ERROR开头的标准输出行。NodeManager定期生成脚本并检查其输出。如果脚本的输出包含字符串ERROR,如上所述,节点的状态将报告为运行状况不佳并且ResourceManager将节点列入黑名单。不会为此节点分配其他任务。但是,NodeManager继续运行脚本,因此如果节点再次变得健康,它将自动从ResourceManager上的黑名单节点中删除。如果节点不健康,则可以在ResourceManager Web界面中为管理员提供节点的运行状况以及脚本的输出。自节点健康以来的时间也显示在Web界面上。

以下参数在yarn.site.xml配置

参数 说明
yarn.nodemanager.health-checker.script.path 节点健康脚本 用于检查节点健康状况的脚本。
yarn.nodemanager.health-checker.script.opts 节点健康脚本选项 用于检查节点健康状态的脚本选项。
yarn.nodemanager.health-checker.interval-ms 节点健康脚本间隔 运行健康脚本的时间间隔。
yarn.nodemanager.health-checker.script.timeout-ms 节点运行状况超时间隔 健康脚本执行超时。

如果只有部分本地磁盘变坏,则运行状况检查程序脚本不应该给出错误。NodeManager能够定期检查本地磁盘的运行状况(具体检查nodemanager-local-dirs和nodemanager-log-dirs),并在达到配置属性yarn.nodemanager.disk-health-checker.min-healthy-disks设置的错误目录数阈值,整个节点被标记为运行状况不佳,此信息也会发送给资源管理器。引导磁盘被突袭或健康检查程序脚本识别引导磁盘中的故障。

yarn-site.xml 基本配置参考的更多相关文章

  1. mapred-site.xml 基本配置参考

    说明:这是hadoop2.x版本的参数.下面的value都是参数默认值. 常用配置: ♥♥♥ .mapreduce.job.hdfs-servers value:${fs.defaultFS} 说明: ...

  2. hdfs-site.xml 基本配置参考

    配置参数: 1.dfs.nameservices 说明:为namenode集群定义一个services name 默认值:null 比如设置为:ns1 2.dfs.ha.namenodes.<d ...

  3. log4j配置参考手册:log4j.properties和log4j.xml两种格式

    log4j是Java Web开发中,最常用的日志组件之一.网上关于log4j的配置满天飞,我主要是从网上学习的配置.之前的很多年,主要使用log4j.properties这种格式.后来,项目中boss ...

  4. Hadoop 管理工具HUE配置-Yarn Resource Manager HA配置

    安装HUE之后,需要配置很多东西才能将这个系统的功能发挥出来,因为Yarn是配置的HA模式,所以在配置HUE的时候,会有些不用,下面一段文字是官网拿来的 # Configuration for YAR ...

  5. 源码跟读,Spring是如何解析和加载xml中配置的beans

    Spring版本基于: 跟踪代码源码基于: https://github.com/deng-cc/KeepLearning commit id:c009ce47bd19e1faf9e07f12086c ...

  6. 马士兵hadoop第四课:Yarn和Map/Reduce配置启动和原理讲解

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

  7. Dubbo -- 系统学习 笔记 -- 配置参考手册

    Dubbo -- 系统学习 笔记 -- 目录 配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> ...

  8. 为什么Spring Boot推荐使用logback-spring.xml来替代logback.xml来配置logback日志的问题分析

    最根本的原因: 即,logback.xml加载早于application.properties,所以如果你在logback.xml使用了变量时,而恰好这个变量是写在application.proper ...

  9. MyBatis—mapper.xml映射配置

    SQL文件映射(mapper文件),几个顶级元素的配置: mapper元素:根节点只有一个属性namespace(命名空间)作用: 1:用于区分不同的mapper,全局唯一. 2:绑定DAO接口,即面 ...

随机推荐

  1. intel ipp6.0安装过程

    由于最近看到一个代码中使用了intel ipp6.0库,了解到,ipp6.0是一个很强大的图像处理库,将其与opencv联合使用,还能够加速opencv的处理,在图像处理的过程中,是一个很重要的工具. ...

  2. 每周分享五个 PyCharm 使用技巧(三)

    文章首发于 微信公众号:Python编程时光 PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. 一个每天都在使用的工具,如果能掌 ...

  3. mysql中常用的数据类型

    MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语 ...

  4. nginx的access_log与error_log

     参考文章:https://juejin.im/post/5aa09bb3f265da238f121b6c 本篇文章主要介绍一下 nginx 服务器两种日志查看:access_log.error_lo ...

  5. 有用的vscode快捷键大全+自定义快捷键

    VS Code是前端的一个比较好用的代码编辑器,但是我们不能老是局限于鼠标操作呀,有时候很不方便,所以呢,快捷键大全来啦,有的可能会和你们电脑自带的快捷键冲突呢,这时候,你自己设置一下就好了呀 一.v ...

  6. 在oracle中存入date类型数据遇到的问题及其解决方法(利用java.sql.date和Timestamp)

    转自:https://blog.csdn.net/ShadowerWArden/article/details/80652377 1. 使用JDBC操作Oracle数据库时,使用java.sql.Da ...

  7. 第十八篇:简易版web服务器开发

    在上篇有实现了一个静态的web服务器,可以接收web浏览器的请求,随后对请求消息进行解析,获取客户想要文件的文件名,随后根据文件名返回响应消息:那么这篇我们对该web服务器进行改善,通过多任务.非阻塞 ...

  8. Flutter——消息框(Fluttertoast)

    引入依赖: dependencies: fluttertoast: ^3.1.3 import 'package:flutter/material.dart'; import 'package:flu ...

  9. (备忘)jeecg的$.dialog的一些参数

    jeecg表单弹出框采用的技术是lhgdialog 一.配置全局默认参数 (function(config){ config['extendDrag'] = true; // 注意,此配置参数只能在这 ...

  10. MySQL服务器2

    1.sql的基本语法 对数据库 create database db1; 创建数据库 对表: create database t1(id int,name char(10)); 创建表 show cr ...