🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁
🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁
目录
Hadoop YARN的核心组件是ResourceManager,负责集群资源管理与调度,而ResourceManager组件的核心是调度器,负责统筹集群资源,满足应用的资源需求。调度器不仅需要优化整个集群的资源布局,避免热点等问题对应用的影响,最大程度利用集群资源;还要能协调好大量应用在集群的运行,基于多租户(队列)公平性、应用优先级等策略解决好资源竞争等问题;也要能满足个别应用在节点依赖、放置策略等方面的特殊需求。
YARN调度器是可拔插的插件,主要有FIFOScheduler、FairScheduler和CapacityScheduler三类。
下面重点对CapacityScheduler进行介绍,其他调度器的使用说明请参考社区文档。
Ambari 2.7.4配置页面
配置队列层级如下:
- root
- ├── acc
- └── ipva
- ├── bzv2
- └── default
Ambari-queue-manager配置如下:
capacity-scheduler.xml 配置文件
-
- <configuration xmlns:xi="http://www.w3.org/2001/XInclude">
-
- <property>
- <name>yarn.scheduler.capacity.maximum-am-resource-percentname>
- <value>0.2value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.maximum-applicationsname>
- <value>10000value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.node-locality-delayname>
- <value>40value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.resource-calculatorname>
- <value>org.apache.hadoop.yarn.util.resource.DefaultResourceCalculatorvalue>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acc.acl_administer_queuename>
- <value>*value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acc.acl_submit_applicationsname>
- <value>*value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acc.capacityname>
- <value>60value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acc.maximum-capacityname>
- <value>70value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acc.minimum-user-limit-percentname>
- <value>100value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acc.ordering-policyname>
- <value>fifovalue>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acc.priorityname>
- <value>0value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acc.statename>
- <value>RUNNINGvalue>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acc.user-limit-factorname>
- <value>1.5value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.accessible-node-labelsname>
- <value>*value>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acl_administer_queuename>
- <value>yarn,spark,hivevalue>
- property>
-
-
- <property>
- <name>yarn.scheduler.capacity.root.acl_submit_applicationsname>
- <value>yarn,ambari-qavalue>
- property>
-
-
-
-
-
-
- <property>
- <name>yarn.scheduler.capacity.root.queuesname>
- <value>acc,bz2,default,ipvavalue>
- property>
-
- configuration>
关键参数说明:
yarn.scheduler.capacity.root.acc.capacity:队列资源容量的百分比,用浮点数表示(如12.5)或者是作为绝对资源队列的最小容量。在各层级上所有队列的百分比之和必须等于100。
yarn.scheduler.capacity.root.acc.maximum-capacity:最大队列容量,以百分比(%)表示为浮点数,或以绝对资源队列最大容量表示。这限制了队列中应用程序的弹性。1)取值范围为0 ~ 100。2)管理员需要确保绝对最大容量>=每个队列的绝对容量。此外,将此值设置为-1将最大容量设置为100%。
yarn.scheduler.capacity.root.acc.user-limit-factor: 这个参数配置为允许单个用户最多能获取的队列资源(即yarn.scheduler.capacity..capacity的值)的倍数,值是一个浮点值。也就是说如果把这个参数设置为大于1时,用户使用的资源可以超过队列资源。如果该值为2.0,则单个用户使用的最多资源量可以是该队列容量的2倍,但无论配置为多大都不能超过队列的最大资源(即yarn.scheduler.capacity..maximum-capacity的值)。默认值为1,确保单个用户无论集群有多空闲,永远不会占用超过队列配置的资源量。
如下图 点击 Scheduler可以看到在 Ambari 页面上配置的层级队列
如下是acc 队列的使用情况,不用 队列使用不用的颜色显示
资源说明
显示 | 解释 |
Queue State: RUNNING | 队列状态 RUNNING |
Used Capacity : 78.2% | 已使用资源占队列配置值的百分比48640/62208=78.2% |
Effective Capacity: memory:62208, vCores:36> (60.0%) | 有效容量,表示队列实际可用的内存和虚拟核心资源 分别为 62208 MB 和 36 个。 |
Effective Max Capacity: 72575, vCores:41> (70.0%) | 有效最大容量,表示队列实际可用的内存和虚拟核心资源分别为 72575 MB 和 41 个。 |
Absolute Used Capacity: 46.9% | 已使用绝对容量 48640/103680=46.9% |
Absolute Configured Capacity: 60.0% | 表示队列在整个集群中占据配置容量60%。 |
Absolute Configured Max Capacity: 70.0% | 表示队列在整个集群中占据最大配置容量70%。 |
Used Resources: <48640, vCores:15> | acc 队列使用 资源 |
Configured Max Application Master Limit: 20.0 | AppMaster 限制使用资源 20% |
Max Application Master Resources: | 表示每个 Application Master 最多可以使用 2560 MB 内存和 1 个虚拟核心资源 |
Used Application Master Resources: | AppMaster 资源使用 1核1G |
Max Application Master Resources Per User: | 表示每个用户的 Application Master 最多可以使用 14848MB 内存和 1 个虚拟核心资源。 |
Num Schedulable Applications: 1 | 调度的App调用个数为 1 |
Num Non-Schedulable Applications: 0 | 没有被调度的app应用个数 |
Num Containers: 3 | 容器运行 个数3 |
Max Applications: 6000 | 最大应用数量 6000 |
Max Applications Per User: 6000 | 每个user最多可以运行的应用数量 6000 |
Configured Minimum User Limit Percent: 100% | 每个user最多可以使用队列资源的百分比 |
Configured User Limit Factor: 1.5 | 最多能获取的队列资源的1.5倍 |
Accessible Node Labels: * | 标签策略 为匹配所有 |
Ordering Policy: FifoOrderingPolicy | 队列内部任务采用策略Fifo |
参考文章:
什么是YARN调度器_开源大数据平台E-MapReduce-阿里云帮助中心