全部產品
Search
文件中心

E-MapReduce:手工縮容節點群組

更新時間:Jul 15, 2025

當您的叢集負載長時間處於低水平且大量叢集資源處於閑置狀態時,您可以考慮對叢集的Core節點群組或Task節點群組進行縮容,以避免資源的浪費。對於隨用隨付Task節點群組的縮容,可通過控制台進行操作。而其他類型的隨用隨付Core節點群組、訂用帳戶Task節點群組及訂用帳戶Core節點群組的縮容,則需遵循本文所述操作流程。

使用限制

  • 如果您的叢集Core節點的數量與HDFS的副本數量相等,請勿對core節點進行縮容,以避免資料丟失。

  • 如果您的叢集為舊版Hadoop叢集,並且該叢集為高可用(HA)叢集,Master節點數量為2,則請勿縮容emr-worker-1節點(在舊版高可用叢集中,Zookeeper將部署在work-1上)。

注意事項

  • 本文操作均無法復原,一旦開始下線操作後,無法恢複原有狀態。

  • 本文操作為最佳實務操作示範,請結合叢集實際情況進行評估後謹慎操作,避免叢集任務調度失敗以及資料安全的風險。

如何選擇下線節點

縮容節點群組主要依靠下線節點群組內的節點實現。您可以根據叢集服務的負載情況,選擇需要下線的節點。本文提供兩種方法以供您查看叢集資源的使用方式,從而判斷需要下線的節點。

方法一:EMR控制台監控診斷

  1. 指標監控頁面查看YARN-Queues儀錶盤的AvailableVCores指標。如果AvailableVCores指標長時間保持較高水平,說明隊列中存在較多可用核心數,此時可考慮對叢集的Core節點群組或Task節點群組進行縮容。

  2. 指標監控頁面查看YARN-NodeManagers儀錶盤中的AvailableGB指標。如果某個節點的AvailableGB指標長時間保持較高水平,則表明該節點擁有較多可用記憶體,此時可以考慮釋放該節點。

說明

您可以根據您的業務需求結合其他指標作為判斷依據。

方法二:YARN的WEB UI頁面

  1. 查看叢集隊列資源使用方式,如果發現隊列資源經常使用得很少,此時可考慮對叢集的Core節點群組或Task節點群組進行縮容。

    Core_p1

  2. 在Nodes頁面,按照Nodes Address進行排序,可以快速找出哪個節點可用記憶體較多,此時可以考慮釋放該節點。

    core_p2

重要

如果您的叢集是舊版Hadoop叢集且有以下情況,需要特別注意:

  • 如果您的叢集為非高可用叢集,請不要下線emr-worker-1和emr-worker-2 節點。

  • 如果您的叢集為高可用叢集,但Master節點數為2,請不要下線emr-worker-1節點。

步驟一:查看下線節點服務

在下線節點從而對Core節點群組或Task節點群組進行縮容時,需要先將對應節點的相關元件服務下線,才能釋放相應的節點資源。可以在控制台的節點管理頁面查看節點部署組件情況。

core_p3

步驟二:節點群組件服務下線

如果您選擇的下線節點已安裝以下元件服務,請在釋放節點之前對已安裝的這些服務元件先行進行下線操作,否則可能會導致任務調度失敗及資料安全的問題。

YARN NodeManager下線

  1. 進入YARN服務的狀態頁面。

    1. 登入E-MapReduce控制台

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. EMR on ECS頁面,單擊目的地組群操作列的叢集服務

    4. 叢集服務頁面,單擊YARN服務地區的狀態

  2. 下線目標節點的NodeManager。

    1. 組件列表中,單擊NodeManager操作列中的core_p0 > 下線

    2. 在彈出的對話方塊中,選擇執行範圍 > 指定機器、輸入執行原因、單擊確定

    3. 在彈出的對話方塊中,單擊確定

  3. 單擊右上方的操作歷史,可以查看操作進度。

HDFS DataNode下線

  1. 通過SSH方式登入叢集Master節點,詳見請參見登入叢集

  2. 切換到hdfs使用者,並查看當前NameNode的個數。

    sudo su - hdfs
    hdfs haadmin -getAllServiceState
  3. 依次ssh到NameNode所在節點,編輯dfs.exclude檔案,加入需要下線的節點,每次建議只新增一台。

    • 舊版Hadoop叢集

      touch /etc/ecm/hadoop-conf/dfs.exclude
      vim /etc/ecm/hadoop-conf/dfs.exclude

      在vim下輸入o,新開始一行,填寫下線的DataNode的hostname。

      emr-worker-3.cluster-xxxxx
      emr-worker-4.cluster-xxxxx
    • 非舊版Hadoop叢集

      touch /etc/taihao-apps/hdfs-conf/dfs.exclude
      vim /etc/taihao-apps/hdfs-conf/dfs.exclude

      在vim下輸入o,新開始一行,填寫下線的DataNode的hostname。

      core-1-3.c-0894dxxxxxxxxx
      core-1-4.c-0894dxxxxxxxxx
  4. 在任一NameNode所在節點,切換到hdfs使用者,執行重新整理命令,HDFS自動啟動下線。

    sudo su - hdfs
    hdfs dfsadmin -refreshNodes
  5. 確認下線結果。

    輸入以下命令,判斷下線過程是否已經完成。

    hadoop dfsadmin -report

    當指定節點的下線Status為Decommissioned,即表示該節點DataNode的資料已經遷移至其他節點,下線操作已經完成。

StarRocks下線

  1. 登入叢集並使用用戶端訪問叢集,詳情請參見快速入門

  2. 執行如下命令,通過DECOMMISSION方式下線BE。

    ALTER SYSTEM DECOMMISSION backend "be_ip:be_heartbeat_service_port";

    以下參數請根據叢集實際情況替換。

    • be_ip:在節點管理頁面找到待縮容BE的內網IP地址。

    • be_heartbeat_service_port:預設是9050,可以通過show backends命令查看。

    如果Decommission很慢,您可以使用DROP方式強制下線BE。

    重要

    如果您使用DROP方式下線BE節點,請確保系統三副本完整。

    ALTER SYSTEM DROP backend "be_ip:be_heartbeat_service_port";
  3. 執行以下命令,觀察BE狀態。

    show backends;

    Starrocks1

    SystemDecommissioned為true的節點,表示進行中Decommission。當BE節點的TabletNum為0時,系統會清理中繼資料。

    如果圖中查看不到BE節點,則說明下線成功。

HBase HRegionServer下線

  1. 進入HBase服務的狀態頁面。

    1. 登入E-MapReduce控制台

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. EMR on ECS頁面,單擊目的地組群操作列的叢集服務

    4. 叢集服務頁面,單擊HBase服務地區的狀態

  2. 下線目標節點的HRegionServer。

    1. 組件列表中,單擊HRegionServer操作列中的停止

    2. 在彈出的對話方塊中,選擇執行範圍 > 指定機器、輸入執行原因、單擊確定

    3. 在彈出的對話方塊中,單擊確定

  3. 單擊右上方的操作歷史,可以查看操作進度。

HBASE-HDFS DataNode下線

  1. 通過SSH方式登入叢集Master節點,詳見請參見登入叢集

  2. 執行以下命令,切換到hdfs使用者並設定環境變數。

    sudo su - hdfs
    export HADOOP_CONF_DIR=/etc/taihao-apps/hdfs-conf/namenode
  3. 執行以下命令,查看當前NameNode的資訊。

    hdfs dfsadmin -report
  4. 依次ssh到NameNode所在節點,編輯dfs.exclude檔案,加入需要下線的節點,每次建議只新增一台。

    touch /etc/taihao-apps/hdfs-conf/dfs.exclude
    vim /etc/taihao-apps/hdfs-conf/dfs.exclude

    在vim下輸入o,新開始一行,填寫下線的DataNode的hostname。

    core-1-3.c-0894dxxxxxxxxx
    core-1-4.c-0894dxxxxxxxxx
  5. 在任一NameNode所在節點,切換到hdfs使用者,執行重新整理命令,HDFS自動啟動下線。

    sudo su - hdfs
    export HADOOP_CONF_DIR=/etc/taihao-apps/hdfs-conf/namenode
    hdfs dfsadmin -refreshNodes
  6. 確認下線結果。

    輸⼊以下命令,判斷下線過程是否已經完成。

    hadoop dfsadmin -report

    當指定節點的下線Status為Decommissioned,即表示該節點DataNode的資料已經遷移⾄其他節點,下線操作已經完成。

    SmartData JindoStorageService下線(舊版Hadoop叢集)

    1. 進入SmartData服務的狀態頁面。

      1. 登入E-MapReduce控制台

      2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

      3. EMR on ECS頁面,單擊目的地組群操作列的叢集服務

      4. 叢集服務頁面,單擊SmartData服務地區的狀態

    2. 下線目標節點的JindoStorageService。

      1. 組件列表中,單擊JindoStorageService操作列中的core_p0 > 下線

      2. 在彈出的對話方塊中,選擇執行範圍 > 指定機器、輸入執行原因、單擊確定

      3. 在彈出的對話方塊中,單擊確定

    3. 單擊右上方的操作歷史,可以查看操作進度。

步驟三:釋放下線節點

重要

您需要登入ECS控制台對叢集節點進行操作,如果您是RAM使用者,則需要具有ECS相關許可權,建議授權AliyunECSFullAccess。

  1. 進入節點管理頁面。

    1. 登入E-MapReduce控制台

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. EMR on ECS頁面,單擊目的地組群操作列的節點管理

  2. 節點管理頁面,單擊待釋放節點的ECS ID。

    即可進入ECS控制台。

  3. 在ECS控制台上對執行個體進行釋放操作,詳情請參見釋放執行個體

相關文檔

  • 對於隨用隨付和搶佔式執行個體的Task節點群組的縮容操作,詳情請參見縮容叢集

  • 如果您的叢集計算資源不足,您可以對叢集的Core節點群組和Task節點群組進行擴容,詳情請參見擴容叢集

  • 如果您想根據業務需求自動調整叢集計算資源,您可以為節點群組設定託管Auto Scaling或自訂Auto Scaling規則,詳情請參見Auto Scaling