如何在 Amazon EMR 中設定或修改 YARN 節點標籤?

3 分的閱讀內容
0

我想在 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 標籤功能

請完成下列步驟:

  1. Edit software settings (編輯軟體設定) 區段中的 Enter configuration (輸入組態) 下,新增下列屬性:

    [  
      {  
        "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) 儲存貯體:

    #!/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
  3. Bootstrap Actions (引導操作) 區段中,將指令碼新增為自訂動作,然後建立叢集

  4. 若要確認已套用變更,請在主節點中執行下列命令:

    yarn cluster --list-node-labels

    輸出會顯示節點標籤的空白值:

    <<<<< Node Labels: >>>>>>

關閉現有的 Amazon EMR 叢集中的 YARN 標籤功能

請完成下列步驟:

  1. 使用 SSH 連線至 Amazon EMR 主要節點

  2. 建立 yarn-site.xml 檔案的備份。路徑為 :/etc/hadoop/conf/yarn-site.xml

  3. 執行下列命令,以檔案編輯器模式開啟 yarn-site.xml

    sudo su vi yarn-site.xml
  4. arn.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. 如果您的叢集版本超過 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
  7. 若要確認已套用變更,請執行下列命令:

    yarn cluster --list-node-labels

    輸出會顯示節點標籤的空白值:

    <<<<< Node Labels: >>>>>>

在 Amazon EMR 版本 6.x 及更高版本中開啟 YARN 標籤功能

建立 EMR 叢集時開啟 YARN 標籤功能

  1. Edit software settings (編輯軟體設定) 區段中的 Enter configuration (輸入組態) 下,新增下列屬性:

    [  
      {  
        "Classification": "yarn-site",  
        "Properties": {  
          "yarn.node-labels.enabled": "true",  
          "yarn.node-labels.am.default-node-label-expression": "CORE"  
        }  
      }  
    ]
  2. 建立叢集

  3. 若要確認已套用變更,請在主節點中執行下列命令:

    yarn cluster --list-node-labels

    輸出會顯示節點標籤的空白值:

    <<<<< Node Labels: <CORE:exclusivity=false>  >>>>>

在現有 EMR 叢集中開啟 YARN 標籤功能

請完成下列步驟:

  1. 開啟 Amazon EMR 主控台

  2. 在導覽窗格中選擇 Clusters (叢集),然後選取想要編輯的叢集。

  3. 選擇 Configurations (組態) 索引標籤。

  4. Instance group configurations (執行個體群組組態) 下,選擇執行個體群組。

  5. 選擇 Reconfigure (重新設定) 圖示,選取 Edit in JSON (在 JSON 中編輯),然後新增下列屬性:

    [  
      {  
        "Classification": "yarn-site",  
        "Properties": {  
          "yarn.node-labels.enabled": "true",  
          "yarn.node-labels.am.default-node-label-expression": "CORE"  
        }  
      }  
    ]
  6. 選擇 Apply this configuration to all active instance groups (將此組態套用至所有作用中的執行個體群組),然後儲存變更。

  7. 在主節點中以 hadoop 使用者身分執行下列命令:

    yarn rmadmin -addToClusterNodeLabels "CORE(exclusive=false)"
  8. 若要確認已套用變更,請在主節點中執行下列命令:

    yarn cluster --list-node-labels

    輸出會顯示節點標籤的空白值:

    <<<<< Node Labels: <CORE:exclusivity=false>  >>>>>>
AWS 官方
AWS 官方已更新 3 個月前