如何使用 Amazon EMR YARN 排程器佇列設定或修改節點標記?
我想要使用 Amazon EMR Apache YARN 排程器佇列來設定或修改節點標記。
簡短說明
EMR 叢集的預設 YARN 節點標記設定如下:
在 Amazon EMR-5.x.x 系列中 Amazon EMR 5.19.x 及以上版本:
YARN 節點標記功能預設為開啟狀態。這表示 CORE 節點標籤是針對具有以下屬性的核心節點建立的。YARN 應用程式主容器僅分配於核心節點上。而對於所有其他容器,不存在分區限制。您可以在核心或任務節點上分配容器。
yarn.node-labels.enabled: true yarn.node-labels.am.default-node-label-expression: 'CORE'
Amazon EMR 6.X 及更新版本:
YARN 節點標記功能預設為關閉狀態。應用程式主程序可以同時在核心和任務節點上執行。
解決方案
**注意:**最佳實務是先在測試環境中執行變更,再於生產環境中繼續執行。此外,當您關閉 YARN 節點標籤功能時,應用程式主容器會以任何節點類型 (例如核心或任務) 啟動。任務節點沒有限制。如果您使用 Spot 執行個體設定任務節點,則當任務節點因 Spot 容量限制而關閉時,執行工作可能會失敗。
關閉 Amazon EMR-5.x.x 系列中 Amazon EMR 5.19.x 及以上版本的 YARN 標籤功能
建立新 EMR 叢集時,請關閉預設的 YARN 標籤功能:
1. 將下列屬性新增至編輯軟體設定的輸入組態部分:
[ { "Classification": "yarn-site", "Properties": { "yarn.node-labels.enabled": "false", "yarn.node-labels.am.default-node-label-expression": "" } } ]
2. 使用下列內容建立含有 .sh 副檔名的指令碼,並將其上傳到 Amazon Simple Storage Service (Amazon S3) 儲存貯體。
3. 在引導操作部分,將新建立的指令碼新增為自訂動作,然後繼續建立叢集。
#!/bin/bash sudo sed -i 's/yarn rmadmin -addToClusterNodeLabels "CORE(exclusive=false)"/echo "NO LABELS"/g' /var/aws/emr/bigtop-deploy/puppet/modules/hadoop/manifests/init.pp
4. 叢集建立完成後,請在主節點中執行下列命令,以確認已套用變更:
yarn cluster --list-node-labels
以下是前述命令的預期輸出,顯示節點標籤的空值:
<<<<< Node Labels: >>>>>>
關閉現有 EMR 叢集中的預設 YARN 標籤功能:
2. 建立現有 yarn-site.xml 檔案的備份。路徑為 :/etc/hadoop/conf/yarn-site.xml。
3. 使用下列命令以檔案編輯器模式開啟 yarn-site.xml:
sudo su vi yarn-site.xml
4. 將 yarn.node-labels.enabled 的屬性值變更為 false。
<property> <name>yarn.node-labels.enabled</name> <value>false</value> </property>
5. 在 yarn.node-labels.am.default-node-label-expression 屬性中移除 CORE 值,如下列範例所示:
<property> <name>yarn.node-labels.am.default-node-label-expression</name> <value></value> </property>
6. 重新啟動 YARN ResourceManger 服務:
sudo systemctl restart hadoop-yarn-resourcemanager.service sudo systemctl status hadoop-yarn-resourcemanager.service
7. 使用下列指令確認已成功套用變更:
yarn cluster --list-node-labels
以下是前述命令的預期輸出,顯示節點標籤的空值:
<<<<< Node Labels: >>>>>>
關閉 Amazon EMR 6.x 及更新版本的 YARN 標籤功能
建立新 EMR 叢集時,請開啟 YARN 標籤功能:
1. 將下列屬性新增至編輯軟體設定的輸入組態部分,然後繼續建立叢集:
[ { "Classification": "yarn-site", "Properties": { "yarn.node-labels.enabled": "true", "yarn.node-labels.am.default-node-label-expression": "CORE" } } ]
2. 叢集建立完成後,請在主節點中執行下列命令,以確認已成功套用變更:
yarn cluster --list-node-labels
以下是前述命令的預期輸出:
<<<<< Node Labels: <CORE:exclusivity=false> >>>>>
開啟現有 EMR 叢集中的 YARN 標籤功能:
1. 從 Amazon EMR 主控台選取叢集,然後選取要編輯的叢集。
2. 選擇組態索引標籤。
3. 選取重新設定索引標籤下的以 JSON 格式編輯選項,然後新增下列屬性。
[ { "Classification": "yarn-site", "Properties": { "yarn.node-labels.enabled": "true", "yarn.node-labels.am.default-node-label-expression": "CORE" } } ]
4. 選取將此設定套用至所有作用中執行個體群組選項,然後儲存變更。
5. 在主節點中執行下列命令,以確認已套用變更:
yarn cluster --list-node-labels
以下是前述命令的預期輸出:
<<<<< Node Labels: <CORE:exclusivity=false> >>>>>>
相關內容
- 已提問 1 年前lg...
- 已提問 9 個月前lg...
- 已提問 1 年前lg...
- 已提問 10 個月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前