如何在我的 Amazon EMR YARN CapacityScheduler 上建立佇列?

1 分的閱讀內容
0

如何在我的 Amazon EMR 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 文件網站上的啟用預設佇列對應的覆寫

驗證您的修改

存取 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"

相關資訊

Apache Hadoop 的網站上的Hadoop:容量排程

在 Amazon EC2 上的 Amazon EMR 為多租用戶異質工作負載設定 Hadoop YARN CapacityScheduler

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