hadoop_capacity-scheduler.xml
hadoop3.2.3capacity-scheduler.xml配置实例
<configuration>
<property>
<!-- 可以处于等待和运行状态的应用程序的最大数量 -->
<name>yarn.scheduler.capacity.maximum-applications</name>
<value>10000</value>
</property>
<property>
<!-- 集群中可用于运行应用程序主节点(Application Masters)的最大资源百分比 -->
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>0.6</value>
</property>
<property>
<name>yarn.scheduler.capacity.resource-calculator</name>
<value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
<description>
用于在调度器中比较资源的 ResourceCalculator 实现。
默认实现(DefaultResourceCalculator)仅使用内存,
而 DominantResourceCalculator 使用主导资源来比较多维资源,如内存、CPU 等
</description>
</property>
<property>
<!-- 在根队列下定义的子队列列表 -->
<name>yarn.scheduler.capacity.root.queues</name>
<value>default,datacenter,train</value>
</property>
<property>
<!-- 默认队列的容量百分比(相对于整个集群的资源) -->
<name>yarn.scheduler.capacity.root.default.capacity</name>
<value>50</value>
</property>
<property>
<!-- 每个用户可以占用的默认队列资源的倍数 -->
<name>yarn.scheduler.capacity.root.default.user-limit-factor</name>
<value>2</value>
</property>
<property>
<!-- 默认队列可以达到的最大容量百分比(在需要时可以超过其正常容量) -->
<name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
<value>100</value>
</property>
<property>
<!-- 默认队列的状态(此处为运行状态) -->
<name>yarn.scheduler.capacity.root.default.state</name>
<value>RUNNING</value>
</property>
<property>
<!-- 允许提交应用程序到默认队列的用户或用户组列表(* 表示所有用户) -->
<name>yarn.scheduler.capacity.root.default.acl_submit_applications</name>
<value>*</value>
</property>
<property>
<!-- 允许管理默认队列的用户或用户组列表(如配置队列容量、用户限制等)(* 表示所有用户) -->
<name>yarn.scheduler.capacity.root.default.acl_administer_queue</name>
<value>*</value>
</property>
<property>
<!-- 允许设置应用程序在默认队列中的最大优先级的用户或用户组列表(* 表示所有用户) -->
<name>yarn.scheduler.capacity.root.default.acl_application_max_priority</name>
<value>*</value>
</property>
<property>
<!-- 应用程序在默认队列中可以运行的最大时间(秒)。-1 表示没有限制 -->
<name>yarn.scheduler.capacity.root.default.maximum-application-lifetime</name>
<value>-1</value>
</property>
<property>
<!-- 在默认队列中,应用程序的默认运行时间(秒)。如果未为应用程序指定生命周期,则使用此值。-1 表示没有默认限制 -->
<name>yarn.scheduler.capacity.root.default.default-application-lifetime</name>
<value>-1</value>
</property>
<property>
<!-- datacenter 队列的容量百分比(相对于整个集群的资源) -->
<name>yarn.scheduler.capacity.root.datacenter.capacity</name>
<value>40</value>
</property>
<property>
<!-- datacenter 队列可以达到的最大容量百分比(在需要时可以超过其正常容量) -->
<name>yarn.scheduler.capacity.root.datacenter.maximum-capacity</name>
<value>60</value>
</property>
<property>
<!-- train 队列的容量百分比(相对于整个集群的资源) -->
<name>yarn.scheduler.capacity.root.train.capacity</name>
<value>10</value>
</property>
<property>
<!-- train 队列可以达到的最大容量百分比(在需要时可以超过其正常容量) -->
<name>yarn.scheduler.capacity.root.train.maximum-capacity</name>
<value>20</value>
</property>
<property>
<name>yarn.scheduler.capacity.node-locality-delay</name>
<value>40</value>
<description>
错过调度机会的次数,之后容量调度器会尝试调度机架本地的容器。
设置此参数时,应考虑集群的大小。我们默认使用 40,这大约是一个机架中的节点数。
注意,如果此值为 -1,则容器请求中的本地性约束将被忽略,从而禁用延迟调度
</description>
</property>
<property>
<name>yarn.scheduler.capacity.rack-locality-additional-delay</name>
<value>-1</value>
<description>
在 node-locality-delay 之外,额外错过调度机会的次数,之后容量调度器会尝试调度非机架本地的容器(即跨机架的容器)
例如:如果 node-locality-delay=40 且 rack-locality-delay=20,
则调度器会在错过 40 次机会后尝试机架本地分配,而在错过 40+20=60 次机会后尝试非机架本地分配。
设置此参数时,应考虑集群的大小。
此设置有助于优化集群的资源使用,通过调整延迟,可以更好地平衡负载和资源分配,以提高整体性能
</description>
</property>
<property>
<name>yarn.scheduler.capacity.queue-mappings</name>
<value></value>
<description>
值: (留空)
用于将作业分配给队列的映射列表。此列表的语法为 [u|g]:[name]:[queue_name][,next mapping]*。
通常,此列表用于将用户映射到队列,例如,u:%user:%user 将所有用户映射到与用户名相同名称的队列。
通过此设置,管理员可以灵活地定义用户或用户组与特定队列之间的关联,从而实现对作业调度的精细控制
</description>
</property>
<property>
<name>yarn.scheduler.capacity.queue-mappings-override.enable</name>
<value>false</value>
<description>
如果存在队列映射,它是否会覆盖用户指定的值?管理员可以使用此功能将作业放置在与用户指定的队列不同的队列中。默认值为 false。
此设置允许管理员在必要时覆盖用户的队列选择,以确保作业被分配到最合适的队列中,从而优化集群的资源使用和性能。
</description>
</property>
<property>
<name>yarn.scheduler.capacity.per-node-heartbeat.maximum-offswitch-assignments</name>
<value>1</value>
<description>
控制节点心跳期间允许的 OFF_SWITCH 分配数量。增加此值可以提高 OFF_SWITCH 容器的调度速率。较低的值会减少特定节点上应用程序的“聚集”
默认值为 1。合法值为 1 到 MAX_INT。此配置是可刷新的。
通过调整此设置,管理员可以控制节点在每次心跳时能够进行的跨机架(OFF_SWITCH)分配的数量,从而平衡集群中的负载分布和资源使用。
较高的值可能会提高调度速率,但也可能导致某些节点上的应用程序聚集;较低的值则有助于减少聚集现象,但可能会影响调度速率
</description>
</property>
<property>
<name>yarn.scheduler.capacity.application.fail-fast</name>
<value>false</value>
<description>
在恢复过程中,如果之前的应用程序队列不再有效,是否应该让资源管理器(RM)失败。
此设置用于控制资源管理器在恢复时遇到无效队列时的行为。
如果设置为 true,则当遇到无效队列时,资源管理器将失败并停止恢复过程;
如果设置为 false(默认值),则资源管理器将尝试继续恢复过程,可能会将应用程序分配到默认队列或其他有效队列中。
</description>
</property>
<property>
<name>yarn.scheduler.capacity.workflow-priority-mappings</name>
<value></value>
<description>
值: (留空)
用于覆盖应用程序优先级的映射列表。
通过此设置,管理员可以为特定的工作流和队列组合定义自定义的优先级,从而实现对应用程序调度的更精细控制。
这有助于确保关键工作流获得更高的优先级,以更快地获取资源
</description>
</property>
<property>
<name>yarn.scheduler.capacity.workflow-priority-mappings-override.enable</name>
<value>false</value>
<description>
如果存在优先级映射,它是否会覆盖用户指定的值?管理员可以使用此功能为应用程序指定与用户指定的优先级不同的优先级。
默认值为 false。
此设置允许管理员在必要时覆盖用户的优先级选择,以确保应用程序被分配到最合适的优先级中。
这有助于优化集群的资源使用和性能,特别是当需要确保某些关键应用程序获得更高优先级时
</description>
</property>
</configuration>