gpt4 book ai didi

hadoop - YARN中如何配置垄断FIFO申请队列?

转载 作者:可可西里 更新时间:2023-11-01 14:16:36 25 4
gpt4 key购买 nike

我需要在 hadoop 集群中禁用 YARN 应用程序的并行执行。现在,YARN 具有默认设置,因此多个作业可以并行运行。我看不出这样做有什么好处,因为这两个作业运行得都比较慢。

我发现此设置 yarn.scheduler.capacity.maximum-applications 限制了最大应用程序数量,但它会影响已提交和正在运行的应用程序(如文档中所述)。我想将提交的应用程序保持在队列中,直到当前正在运行的应用程序未完成。如何做到这一点?

最佳答案

1) 将调度程序更改为 FairScheduler

Hadoop 发行版默认使用 CapacityScheduler(Cloudera 使用 FairScheduler 作为默认调度程序)。将此属性添加到 yarn-site.xml

<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>

2) 设置默认队列

Fair Scheduler 为每个用户创建一个队列。即,如果三个不同的用户提交作业,那么将创建三个单独的队列,并且资源将在三个队列之间共享。通过在 yarn-site.xml

中添加此属性来禁用它
<property>
<name>yarn.scheduler.fair.user-as-default-queue</name>
<value>false</value>
</property>

这确保所有作业都进入一个默认队列。

3) 限制最大应用数

现在作业队列已被限制为一个默认队列。将可以在该队列中运行的应用程序的最大数量限制为 1

$HADOOP_CONF_DIR 下创建一个名为 fair-scheduler.xml 的文件并添加这些条目

<allocations>
<queueMaxAppsDefault>1</queueMaxAppsDefault>
</allocations>

此外,在 yarn-site.xml 中添加此属性

<property>
<name>yarn.scheduler.fair.allocation.file</name>
<value>$HADOOP_CONF_DIR/fair-scheduler.xml</value>
</property>

添加这些属性后重启YARN服务。


在提交多个应用程序时,第一个ACCEPTED 的应用程序将被视为有效应用程序,其余的将作为待处理应用程序排队。这些待处理的应用程序将继续处于ACCEPTED 状态,直到RUNNING 应用程序FINISHED。事件应用程序将被允许利用所有可用资源。

引用: Hadoop: Fair Scheduler

关于hadoop - YARN中如何配置垄断FIFO申请队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43098085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com