如何在我的 Amazon EMR YARN CapacityScheduler 上建立佇列?
上次更新日期 2022 年 12 月 7 日
如何在我的 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"