New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
如何在 Amazon EMR 中設定或修改 YARN 節點標籤?
我想在 Amazon EMR 中設定或修改 Apache Hadoop YARN 節點標籤。
簡短說明
預設的 YARN 節點標籤設定,會因您的 Amazon EMR 版本而有所不同。
Amazon EMR-5.x 發行版本中的 Amazon EMR 版本 5.19.x 及更高版本
依預設,系統會開啟 YARN 節點標籤功能。當您開啟此功能時,系統會針對具有下列屬性的核心節點標籤建立 CORE 節點標籤:
yarn.node-labels.enabled: true yarn.node-labels.am.default-node-label-expression: 'CORE'
YARN ApplicationMaster 容器僅會分配於核心節點上。所有其他容器沒有分割區限制。您可以在核心節點或任務節點上分配容器。
Amazon EMR 版本 6.x 及更高版本
YARN 節點標籤功能預設會關閉。您可以在核心和任務節點上執行應用程式的主要程序。
解決方法
**注意:**在生產環境中設定 YARN 節點標籤之前,先行在測試環境中加以設定是最佳做法。當您關閉 YARN 節點標籤功能時,Application-Master 容器會以任何節點類型啟動。任務節點沒有限制。對於使用 Amazon Elastic Compute Cloud (Amazon EC2) Spot 執行個體設定的任務節點,如果任務節點因 Spot 容量限制而停機,執行中的任務可能會失敗。
在 Amazon EMR-5.x 發行版本中的 Amazon EMR 版本 5.19.x 及更高版本中關閉 YARN 標籤
建立 EMR 叢集時關閉 YARN 標籤功能
請完成下列步驟:
-
在 Edit software settings (編輯軟體設定) 區段中的 Enter configuration (輸入組態) 下,新增下列屬性:
[ { "Classification": "yarn-site", "Properties": { "yarn.node-labels.enabled": "false", "yarn.node-labels.am.default-node-label-expression": "" } } ]
-
請使用 **.sh ** 副檔名建立下列指令碼,然後將指令碼上傳到 Amazon Simple Storage Service (Amazon S3) 儲存貯體:
#!/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
-
在 Bootstrap Actions (引導操作) 區段中,將指令碼新增為自訂動作,然後建立叢集。
-
若要確認已套用變更,請在主節點中執行下列命令:
yarn cluster --list-node-labels
輸出會顯示節點標籤的空白值:
<<<<< Node Labels: >>>>>>
關閉現有的 Amazon EMR 叢集中的 YARN 標籤功能
請完成下列步驟:
-
建立 yarn-site.xml 檔案的備份。路徑為 :/etc/hadoop/conf/yarn-site.xml。
-
執行下列命令,以檔案編輯器模式開啟 yarn-site.xml:
sudo su vi yarn-site.xml
-
將 arn.node-labels.enabled 屬性值變更為 false:
<property> <name>yarn.node-labels.enabled</name> <value>false</value> </property>
-
移除 yarn.node-labels.am.default-node-label-expression 屬性中的 CORE 值:
<property> <name>yarn.node-labels.am.default-node-label-expression</name> <value></value> </property>
-
如果您的叢集版本超過 5.29.0,請執行下列命令以重新啟動 ResourceManager:
sudo systemctl restart hadoop-yarn-resourcemanager.service
sudo systemctl status hadoop-yarn-resourcemanager.service
-or-
如果您的叢集版本為 5.29.0 或更早版本,請執行下列命令以重新啟動 ResourceManager:sudo stop hadoop-yarn-resourcemanager
sudo start hadoop-yarn-resourcemanager
-
若要確認已套用變更,請執行下列命令:
yarn cluster --list-node-labels
輸出會顯示節點標籤的空白值:
<<<<< Node Labels: >>>>>>
在 Amazon EMR 版本 6.x 及更高版本中開啟 YARN 標籤功能
建立 EMR 叢集時開啟 YARN 標籤功能
-
在 Edit software settings (編輯軟體設定) 區段中的 Enter configuration (輸入組態) 下,新增下列屬性:
[ { "Classification": "yarn-site", "Properties": { "yarn.node-labels.enabled": "true", "yarn.node-labels.am.default-node-label-expression": "CORE" } } ]
-
建立叢集。
-
若要確認已套用變更,請在主節點中執行下列命令:
yarn cluster --list-node-labels
輸出會顯示節點標籤的空白值:
<<<<< Node Labels: <CORE:exclusivity=false> >>>>>
在現有 EMR 叢集中開啟 YARN 標籤功能
請完成下列步驟:
-
開啟 Amazon EMR 主控台。
-
在導覽窗格中選擇 Clusters (叢集),然後選取想要編輯的叢集。
-
選擇 Configurations (組態) 索引標籤。
-
在 Instance group configurations (執行個體群組組態) 下,選擇執行個體群組。
-
選擇 Reconfigure (重新設定) 圖示,選取 Edit in JSON (在 JSON 中編輯),然後新增下列屬性:
[ { "Classification": "yarn-site", "Properties": { "yarn.node-labels.enabled": "true", "yarn.node-labels.am.default-node-label-expression": "CORE" } } ]
-
選擇 Apply this configuration to all active instance groups (將此組態套用至所有作用中的執行個體群組),然後儲存變更。
-
在主節點中以 hadoop 使用者身分執行下列命令:
yarn rmadmin -addToClusterNodeLabels "CORE(exclusive=false)"
-
若要確認已套用變更,請在主節點中執行下列命令:
yarn cluster --list-node-labels
輸出會顯示節點標籤的空白值:
<<<<< Node Labels: <CORE:exclusivity=false> >>>>>>

相關內容
- 已提問 2 年前lg...
- 已提問 6 個月前lg...
- 已提問 4 個月前lg...
- 已提問 2 年前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 5 個月前
- AWS 官方已更新 4 年前
- AWS 官方已更新 3 年前