在YARN中,资源队列(Queue)用于对集群资源(内存、CPU等)进行分配和管理。我们可以通过配置yarn-site.xml来设置YARN的队列信息。
一个简单的队列配置示例如下:
xml
<property>
<name>yarn.resourcemanager.scheduler.capacity.root.queues</name>
<value>default,production,test</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.default.capacity</name>
<value>60</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.production.capacity</name>
<value>30</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.production.maximum-capacity</name>
<value>50</value>
</property>
<property>
<name>yarn.scheduler.capacity.root.test.capacity</name>
<value>10</value>
</property>
这些属性的含义是:
- yarn.resourcemanager.scheduler.capacity.root.queues: 配置3个队列,分别是default、production和test。
- yarn.scheduler.capacity.root.*.capacity:配置每个队列的容量(权重)。default队列权重为60%,production队列权重30%,test队列权重10%。
- yarn.scheduler.capacity.root.production.maximum-capacity:配置production队列的最大容量上限为50%。
除了capacity和maximum-capacity,我们还可以为队列配置其他的参数,如: - minimum-user-limit-percent:单个用户最小的资源限制。
- maximum-user-limit-percent:单个用户最大的资源限制。
- user-limit-factor:用户限制调度器多少倍。
- user-as-default-queue:将用户映射到默认队列。
- fairSharePreemptionTimeout:公平共享抢占超时。
- fairSharePreemptionThreshold:触发公平共享抢占的阈值。