Yarn配置每个队列属性

简介: 队列属性包含定义队列行为的设置。使用队列属性,您可以定义不需要直接从父队列继承属性的设置,并定义特定于队列的设置。

这是CDP中Yarn使用手册系列的一篇。之前的文章请参考《Apache Hadoop Yarn概述》、《CDP中使用YARN Web UI和CLI》、《CDP中配置Apache Hadoop Yarn的安全性》、《CDP中Yarn资源调度与管理》、《CDP中Yarn管理队列》、《Yarn在全局级别配置调度程序属性》。

队列属性包含定义队列行为的设置。使用队列属性,您可以定义不需要直接从父队列继承属性的设置,并定义特定于队列的设置。

Cloudera Manager 中,您可以使用队列属性来查看和配置队列属性。

1.   Cloudera Manager 中,选择集群> YARN 队列管理器UI 服务。

图片 1.png

2.   单击队列上的三个垂直点,然后选择查看/编辑队列属性选项。

图片 2.png

3.   队列属性窗口中,输入属性值并单击保存

图片 3.png

1     在队列中设置用户限制

设置分配给每个叶队列用户的最小资源百分比。

最小用户限制(最小用户极限百分比)属性可以用于设置分配给每个叶队列用户资源的最小百分比。例如,要在五个用户之间平等共享服务叶队列容量,您可以将最小用户限制百分比设置为 20%

根据本例配置用户限制,请执行以下操作:

1.   Cloudera Manager 中,选择集群> YARN 队列管理器UI 服务。图形队列层次结构显示在概览选项卡中。

2.   单击服务队列上的三个垂直点,然后选择 查看/编辑队列属性选项。

3.   队列属性对话框中,在最小用户限制文本框中输入20 

4.   点击保存

此设置确定任何用户的队列容量份额可以缩小到的最小限制。无论此限制如何,如果有空闲资源可用,任何用户都可以进入队列并占用超过其分配的份额。

下表显示了如何在用户将作业提交到最小用户限制百分比设置为 20% 的队列时调整队列资源:

图片 4.png

·      对于单个用户连续提交多个作业,队列资源以相同的方式进行调整。如果没有其他用户请求队列资源,第一个作业将获得 100% 的队列容量。当用户提交第二个作业时,每个作业接收队列容量的 50%。当用户提交第三个作业时,每个作业接收队列容量的 33%。如果第四个用户随后提交作业,则每个作业将获得队列容量的 25%。当所有用户提交的作业总数达到5个时,每个作业将获得队列容量的20%,后续用户必须等待队列容量释放(假设未启用抢占)。

·      容量调度程序还管理资源以减少用户数量。随着用户的应用程序完成运行,其他具有突出需求的现有用户开始收回该份额。

·      请注意,尽管用户之间存在这种共享,但容量调度程序的 FIFO 应用程序调度顺序不会改变。这保证了用户不能通过不断提交新的应用程序来独占队列。首先提交的应用程序(以及相应的用户)总是比稍后提交的应用程序获得更高的优先级。

Capacity Scheduler 的叶子队列还可以使用user-limit-factor 属性来控制用户资源分配。此属性表示任何单个用户最多可以消耗的队列容量比例,无论集群中是否存在空闲资源。

根据本示例配置最大限制(user-limit-factor),请执行以下操作:

1.   Cloudera Manager 中,选择集群> YARN 队列管理器UI 服务。图形队列层次结构显示在概览选项卡中。

2.   单击要设置限制的队列上的三个垂直点,然后选择 查看/编辑队列属性选项。

3.   队列属性对话框中,1 用户限制因子文本框中输入。

4.   点击保存

默认值“1”表示队列中的任何单个用户最多只能占用队列配置的容量。这可以防止单个队列中的用户独占集群中所有队列的资源。将该值设置为“2”会将队列的用户限制为队列配置容量的两倍。将其设置为 0.5 值将限制任何用户使用超过队列容量一半的资源。

2     为特定队列设置最大应用程序限制

为避免由于无法管理的负载(由恶意用户或意外引起)导致系统崩溃,容量调度程序使您能够对并发活动(正在运行和待处理)应用程序的总数设置静态、可配置的限制任何时候。

您可以使用最大应用程序队列属性设置最大应用程序限制属性。在任何特定队列中运行应用程序的限制是该总限制的一小部分,与其容量成正比。这是一个硬限制,这意味着一旦队列达到此限制,该队列的任何新应用程序都将被拒绝,客户端将不得不等待并稍后重试。

要在特定队列上设置应用程序限制 ( yarn.scheduler.capacity.<queue-path>.maximum-applications ),请执行以下操作:

1.   Cloudera Manager 中,选择集群> YARN 队列管理器 UI 服务。图形队列层次结构显示在概览选项卡中。

2.  单击队列上的三个垂直点,然后选择查看/编辑队列属性选项。

3.  在队列属性对话框中,在最大应用程序文本框中输入最大应用程序限制。

4.  点击保存。

3    为特定队列设置Application-Master 资源限制

Application Master (AM) 资源限制可用于设置专门分配给 Application Master 的集群资源的最大百分比。默认值为 10%,存在是为了避免跨应用程序死锁,其中集群中的重要资源完全被运行应用程序主控的容器占用。

此属性还间接控制集群中并发运行的应用程序数量,每个队列仅限于与其容量成比例的运行应用程序数量。

要为特定队列设置最大 Application Masters 资源限制 ( yarn.scheduler.capacity.maximum-am-resource-percent )

1.   Cloudera Manager 中,选择集群> YARN 队列管理器UI 服务。图形队列层次结构显示在概览选项卡中。

2.   单击队列上的三个垂直点,然后选择查看/编辑队列属性选项。

3.   在队列属性对话框中,在最大AM 资源限制文本框中输入限制 

4.   点击保存。

4     使用 ACL 控制对队列的访问

使用访问控制列表 (ACL) 来控制用户和管理员对容量调度程序队列的访问权限。

应用程序提交实际上只能发生在叶队列级别,但是在父队列上设置的 ACL 限制将应用于其所有后代队列。

在容量调度程序中,通过使用提交应用程序 ACL参数授予对用户和组列表的队列访问权限来配置ACL。列表的格式是“user1,user2 group1,group2”——一个逗号分隔的用户列表,后跟一个空格,后跟一个逗号分隔的组列表。

注意

根队列的Submit Application ACL的默认值为yarn,这意味着只有默认yarn 用户才能向该队列提交应用程序。因此,要为特定用户和组提供对队列的访问权限,您必须将提交应用程序 ACL的值显式设置为这些用户和组。

提交应用ACLacl_submit_applications)也可以设置为“*”(星号),以允许访问所有的用户和组,也可以设置为“”(空格字符)阻止访问到所有用户和组。

如前所述,父队列上的 ACL 设置适用于其所有后代队列。因此,如果父队列使用“*”(星号)值(或未指定)允许访问所有用户和组,则其子队列不能限制访问。同样,在限制对子队列的访问之前,必须先将父队列设置为“”(空格字符)以阻止对所有用户和组的访问。

例如,以下属性会将根提交应用程序 ACL值设置为“”(空格字符)以阻止对所有用户和组的访问,并将对其子“support”队列的访问限制为用户“sherlock”“john” ”“cfo-group”组的成员:

每个子队列都通过配置属性绑定到其父队列。顶级的支持工程营销队列将绑定到队列。

要基于此示例设置 ACL,请执行以下操作:

1.   Cloudera Manager 中,选择集群> YARN 队列管理器UI 服务。图形队列层次结构显示在概览选项卡中。

2.   单击要设置 ACL 的队列上的三个垂直点,然后选择 查看/编辑队列属性选项。

3.   队列属性对话框框,添加sherlock,john cfo-group提交申请ACL文本框中。

4.   点击 保存

单独的 ACL 可用于控制各个级别的队列管理。队列管理员可以向队列提交应用程序,杀死队列中的应用程序,并获取有关队列中任何应用程序的信息(而普通用户被限制查看其他用户应用程序的所有详细信息)。

如果队列管理 ACL值设置为“ ”(空格字符),则会阻止对所有用户和组的访问。如果 ACL 设置为 sherlock,john cfo-group,则它允许访问用户“sherlock”“john”以及“cfo-group”组的成员。

5    为特定队列启用抢占

容量调度程序抢占允许较高优先级的应用程序抢占较低优先级的应用程序。

可能会发生这样的情况:队列具有保证级别的集群资源,但必须等待运行应用程序,因为其他队列正在使用所有可用资源。如果启用抢占,高优先级的应用程序不必等待,因为低优先级的应用程序已经占用了可用容量。启用抢占后,服务不足的队列几乎可以立即开始声明其分配的集群资源,而无需等待其他队列的应用程序完成运行。

注意

如果调度器配置中禁用抢占策略,则无法启用特定队列的抢占。有关设置调度程序级别抢占的信息,请参阅配置抢占

您可以禁用特定队列的队列抢占(yarn.resourcemanager.scheduler.monitor.enable)。

1.   Cloudera Manager 中,选择集群> YARN 队列管理器UI 服务。图形队列层次结构显示在概览选项卡中。

2.   单击队列上的三个垂直点,然后选择查看/编辑队列属性选项。

3.   在队列属性对话框中,取消选中 启用抢占复选框。

4.   点击保存。

6     为特定队列启用队列内抢占

队列内抢占防止队列中的资源不平衡。

队列内抢占有助于根据配置的用户限制或应用程序优先级在队列内有效分配资源。

注意

如果调度器配置中关闭了队列内抢占策略,则无法为特定队列开启队列内抢占。有关设置调度程序级别的队列内抢占的信息,请参阅配置队列内抢占

禁用特定队列的队列内抢占(yarn.resourcemanager.monitor.capacity.preemption.intra-queue-preemption.enabled

1.   Cloudera Manager 中,选择集群> YARN 队列管理器UI 服务。图形队列层次结构显示在概览选项卡中。

2.   单击队列上的三个垂直点,然后选择查看/编辑队列属性选项。

3.   Queue Properties对话框中,取消选中 Enable Intra Queue Preemption复选框。

4.   点击保存。

7    配置动态队列属性

动态队列是根据动态放置规则的预定义表达式自动创建的。

图标

描述已自动生成动态创建的叶队列的队列名称旁边将显示一个叶图标。您可以在队列属性的动态自动创建队列部分查看动态创建的叶队列 的队列属性。您可以通过单击其托管父队列Edit Child Queues选项来配置动态叶队列属性,例如设置用户限制、ACL、排序策略。在托管父队列级别设置的队列属性将应用于其所有叶队列。

8     在特定队列中设置排序策略

根据您的要求在容量调度程序中设置 FIFO(先进先出)或公平调度策略。

容量调度程序中的默认排序策略是 FIFO(先进先出)。FIFO 通常适用于可预测的重复批处理作业,但有时不适用于按需或探索性工作负载。对于这些类型的工作,公平调度通常是更好的选择。灵活的调度策略使您能够在每个队列的基础上为不同类型的工作负载分配 FIFO 或公平排序策略。

8.1  FIFO 和公平共享策略示例

FIFO(先进先出)和公平调度策略在批处理作业和临时作业中的工作方式不同。

批处理示例

在下面的示例中,两个队列具有相同的可用资源。一种使用 FIFO 排序策略,另一种使用公平共享策略。用户一个接一个地向每个队列提交三个作业,等待每个作业开始的时间刚好足够。第一个作业使用队列中资源限制的 6 倍,第二个 4 倍,最后一个 2 倍。

·       FIFO 队列中,6x 作业将启动并运行至完成,然后 4x 作业将启动并运行至完成,然后是 2x 作业。他们将按照 6x4x2x 的顺序开始和结束。

·       Fair 队列中,6x 作业将开始,然后是 4x 作业,然后是 2x 作业。所有三个将同时运行,每个使用 1/3 的可用应用程序资源。它们通常会按以下顺序完成:2x4x6x

Ad Hoc Plus 批处理示例

在此示例中,正在运行使用 10 倍队列资源的作业。作业完成一半后,同一个用户开始第二个作业,需要 1 倍的队列资源。

·       FIFO 队列中,10x 作业将一直运行,直到它不再使用所有队列资源(例如,Map阶段完成),然后 1x 作业将启动。

·       Fair 队列中,1x 作业将尽快启动、运行和完成——通过损耗从 10x 作业中获取资源。

8.2  排序策略的最佳实践

·      排序策略是基于每个队列配置的,默认排序策略设置为 FIFO。公平性通常最适合按需、交互式或探索性工作负载,而 FIFO 可以更有效地用于可预测的重复批处理。您应该将这些不同类型的工作负载隔离到配置有适当排序策略的队列中。

·      · 在同时支持大型和小型应用程序的队列中,大型应用程序可能会饿死(无法获得足够的资源)。为避免这种情况,请为大作业和小作业使用不同的队列,或使用基于大小的加权来减少排序逻辑倾向于较小应用程序的自然趋势。

·      · 使用最大AM 资源限制调度程序属性来限制队列中运行的并发应用程序的数量,以避免出现同时运行太多应用程序的情况。每个队列的限制与其队列容量和用户限制成正比。此属性指定为浮点数,例如:0.5 = 50%。默认设置为 0.1=10%。该属性可以通过设置所有队列进行设置最大AM资源限制在根级别属性,也可以在以每队列基础上通过设置覆盖最大AM资源限制设置默认的应用掌握资源限制在队列级别属性.

8.3  配置队列排序策略

您可以将队列排序策略的属性 ( yarn.scheduler.capacity.<queue-path>.ordering-policy ) 配置为 FIFO Fair。默认设置为先进先出。

1.   Cloudera Manager 中,选择集群> YARN 队列管理器UI 服务。图形队列层次结构显示在概览选项卡中。

2.   单击要配置队列排序策略的队列上的三个垂直点,然后选择查看/编辑队列属性选项。

3.   Queue Properties对话框中,使用Ordering Policy 下拉框将排序策略选择为FIFOFair

4.   点击保存。

原文链接:https://docs.cloudera.com/cdp-private-cloud-base/latest/yarn-allocate-resources/topics/yarn-configure-queue-properties.html

目录
相关文章
|
11天前
|
消息中间件 资源调度 关系型数据库
如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理
本文介绍了如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理。主要内容包括安装Debezium、配置Kafka Connect、创建Flink任务以及启动任务的具体步骤,为构建实时数据管道提供了详细指导。
34 9
|
1月前
|
资源调度
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
37 2
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
|
1月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
149 5
|
1月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
86 4
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
76 4
|
3月前
|
资源调度 关系型数据库 MySQL
【Flink on YARN + CDC 3.0】神操作!看完这篇教程,你也能成为数据流处理高手!从零开始,一步步教会你在Flink on YARN模式下如何配置Debezium CDC 3.0,让你的数据库变更数据瞬间飞起来!
【8月更文挑战第15天】随着Apache Flink的普及,企业广泛采用Flink on YARN部署流处理应用,高效利用集群资源。变更数据捕获(CDC)工具在现代数据栈中至关重要,能实时捕捉数据库变化并转发给下游系统处理。本文以Flink on YARN为例,介绍如何在Debezium CDC 3.0中配置MySQL连接器,实现数据流处理。首先确保YARN上已部署Flink集群,接着安装Debezium MySQL连接器并配置Kafka Connect。最后,创建Flink任务消费变更事件并提交任务到Flink集群。通过这些步骤,可以构建出从数据库变更到实时处理的无缝数据管道。
292 2
|
4月前
|
缓存 资源调度 JavaScript
秒懂Yarn:从安装到配置的全流程详解
**Yarn**是Facebook推出的JavaScript包管理器,旨在提供更快、更安全的依赖管理。它通过并行安装、离线模式、版本锁定和友好的命令行界面提升效率。要安装Yarn,可以使用npm、Homebrew或Chocolatey。基本命令包括初始化项目(`yarn init`)、安装/移除/升级依赖(`yarn add/remove/upgrade`)。配置Yarn涉及设置`.yarnrc`文件,如更改registry。通过`yarn.lock`文件保证依赖一致性。文章还提供了使用Yarn进行API测试和项目管理的实战案例。
237 0
|
2月前
|
资源调度 分布式计算 Hadoop
YARN(Hadoop操作系统)的架构
本文详细解释了YARN(Hadoop操作系统)的架构,包括其主要组件如ResourceManager、NodeManager和ApplicationMaster的作用以及它们如何协同工作来管理Hadoop集群中的资源和调度作业。
126 3
YARN(Hadoop操作系统)的架构
|
2月前
|
资源调度 分布式计算 Hadoop
使用YARN命令管理Hadoop作业
本文介绍了如何使用YARN命令来管理Hadoop作业,包括查看作业列表、检查作业状态、杀死作业、获取作业日志以及检查节点和队列状态等操作。
54 1
使用YARN命令管理Hadoop作业
|
3月前
|
资源调度 分布式计算 算法
【揭秘Yarn调度秘籍】打破资源分配的枷锁,Hadoop Yarn权重调度全攻略!
【8月更文挑战第24天】在大数据处理领域,Hadoop Yarn 是一种关键的作业调度与集群资源管理工具。它支持多种调度器以适应不同需求,默认采用FIFO调度器,但可通过引入基于权重的调度算法来提高资源利用率。该算法根据作业或用户的权重值决定资源分配比例,权重高的可获得更多计算资源,特别适合多用户共享环境。管理员需在Yarn配置文件中启用特定调度器(如CapacityScheduler),并通过设置队列权重来实现资源的动态调整。合理配置权重有助于避免资源浪费,确保集群高效运行,满足不同用户需求。
51 3