如何在我的 Amazon EMR YARN CapacityScheduler 上创建队列?

1 分钟阅读
0

如何在我的 Amazon EMR Hadoop YARN CapacityScheduler 上创建队列?

简短描述

默认情况下,EMR 集群只有一个队列。您可以向集群添加其他队列,并为新队列分配可用的集群资源容量。

解决方法

创建重新配置命令

以下示例重新配置将执行以下操作:

  • 创建两个其他队列:alpha 和 beta。
  • 将集群总资源容量的 30% 分配给每个新队列。添加队列和分配集群容量时,所有队列的容量总和必须等于 100。因此,在以下示例重新配置中,默认队列的容量将减少到 40%。
  • 提供对两个队列的完全访问权限(由“***”**标签指定)。这允许两个队列访问带标签的核心节点。
  • 要提交到特定的队列,请在yarn.scheduler.capacity.queue-mappings 参数中指定队列。此参数会将用户映射到与用户同名的队列。父队列名称必须与主用户组名称相同,例如 u:user:primary_group.user。在以下示例中,参数已设置为 u:hadoop:alpha。这会映射到新创建的队列 alpha

**注意:**每个队列访问核心标签的容量与队列本身的容量相匹配。因此,核心分区以与集群其余部分相同的比例在队列之间分割。

- Classification: capacity-scheduler
  Properties:
    yarn.scheduler.capacity.root.queues: 'default,alpha,beta'
    yarn.scheduler.capacity.root.default.capacity: '40'
    yarn.scheduler.capacity.root.default.accessible-node-labels.CORE.capacity: '40'
    yarn.scheduler.capacity.root.alpha.capacity: '30'
    yarn.scheduler.capacity.root.alpha.accessible-node-labels: '*'
    yarn.scheduler.capacity.root.alpha.accessible-node-labels.CORE.capacity: '30'
    yarn.scheduler.capacity.root.beta.capacity: '30'
    yarn.scheduler.capacity.root.beta.accessible-node-labels: '*'
    yarn.scheduler.capacity.root.beta.accessible-node-labels.CORE.capacity: '30'
- classification: yarn-site
  properties:
    yarn.scheduler.capacity.queue-mappings: 'u:hadoop:alpha'
  configurations: []

**注意:**如果您想要覆盖默认队列映射设置,请将参数 yarn.scheduler.capacity.queue-mappings-override.enable 设置为 true。默认情况下,此参数已设置为 false。设置为 true 时,用户可以向指定队列以外的队列提交任务。有关更多信息,请参阅 Hortonworks Docs 网站上启用覆盖默认队列映射

验证修改

访问 YARN ResourceManager Web UI 以验证是否已修改。

以下是在 Amazon EMR 6.4.0 上提交的 Spark 任务示例,该任务采用前面的示例重新配置:

spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --conf spark.driver.memoryOverhead=512 --conf spark.executor.memoryOverhead=512 /usr/lib/spark/examples/jars/spark-examples.jar 100

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/lib/spark/jars/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
...
...
...
22/11/29 07:58:07 INFO Client: Application report for application_1669707794547_0001 (state: ACCEPTED)
22/11/29 07:58:08 INFO Client: Application report for application_1669707794547_0001 (state: RUNNING)

This application application_1669707794547_0001 is submitted to queue "alpha"

相关信息

Hadoop:Apache Hadoop 网站上的容量调度程序

在 Amazon EC2 上的 Amazon EMR 上为多租户异构工作负载配置 Hadoop YARN CapacityScheduler

AWS 官方
AWS 官方已更新 1 年前