个人主页——开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 ✨
目录
一、CapacityScheduler简介
二、CapacityScheduler特性
三、CapacityScheduler配置
四、YARN WEB UI 参数详解
Hadoop YARN的核心组件是ResourceManager,负责集群资源管理与调度,而ResourceManager组件的核心是调度器,负责统筹集群资源,满足应用的资源需求。调度器不仅需要优化整个集群的资源布局,避免热点等问题对应用的影响,最大程度利用集群资源;还要能协调好大量应用在集群的运行,基于多租户(队列)公平性、应用优先级等策略解决好资源竞争等问题;也要能满足个别应用在节点依赖、放置策略等方面的特殊需求。
YARN调度器是可拔插的插件,主要有FIFOScheduler、FairScheduler和CapacityScheduler三类。
下面重点对CapacityScheduler进行介绍,其他调度器的使用说明请参考社区文档。
Ambari 2.7.4配置页面
配置队列层级如下:
root
├── acc
└── ipva
├── bzv2
└── default
Ambari-queue-manager配置如下:
capacity-scheduler.xml 配置文件
yarn.scheduler.capacity.maximum-am-resource-percent
0.2
yarn.scheduler.capacity.maximum-applications
10000
yarn.scheduler.capacity.node-locality-delay
40
yarn.scheduler.capacity.resource-calculator
org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator
yarn.scheduler.capacity.root.acc.acl_administer_queue
*
yarn.scheduler.capacity.root.acc.acl_submit_applications
*
yarn.scheduler.capacity.root.acc.capacity
60
yarn.scheduler.capacity.root.acc.maximum-capacity
70
yarn.scheduler.capacity.root.acc.minimum-user-limit-percent
100
yarn.scheduler.capacity.root.acc.ordering-policy
fifo
yarn.scheduler.capacity.root.acc.priority
0
yarn.scheduler.capacity.root.acc.state
RUNNING
yarn.scheduler.capacity.root.acc.user-limit-factor
1.5
yarn.scheduler.capacity.root.accessible-node-labels
*
yarn.scheduler.capacity.root.acl_administer_queue
yarn,spark,hive
yarn.scheduler.capacity.root.acl_submit_applications
yarn,ambari-qa
yarn.scheduler.capacity.root.queues
acc,bz2,default,ipva
关键参数说明:
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-阿里云帮助中心
【深入浅出 Yarn 架构与实现】 Yarn 三种调度器_yarn调度器-CSDN博客
yarn web ui 参数详解 - gentleman_hai - 博客园