全部產品
Search
文件中心

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

更新時間:Jul 01, 2024

當EMR叢集資源過剩時,為了保障HDFS資料的穩定性,您需要對Core節點群組進行手動縮容。此外,由於訂用帳戶的Task節點群組不支援自動縮容,您也需要進行手動退訂。

注意事項

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

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

下線前準備

您可以根據叢集服務負載情況,選擇需要下線的節點。您需要計算待下線節點的規格,避免節點縮容後造成叢集負載過高。

重要

如果叢集屬於以下情況,需要特殊注意:

  • 如果Core節點的數量 = HDFS的副本數量,請勿縮容Core節點。

  • 如果您的叢集為非高可用叢集,請勿縮容emr-worker-1和emr-worker-2 節點。

  • 如果您的叢集為高可用叢集,但Master節點數為2,請勿縮容emr-worker-1節點。

服務元件Decommission

如果您的叢集安裝了以下服務,請在刪除ECS前對已安裝的這些服務元件先進行Decommission操作,否則可能會導致任務調度失敗以及資料安全的問題。

YARN NodeManager Decommission

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

    1. 登入E-MapReduce控制台

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

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

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

  2. 下線目標節點的NodeManager。

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

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

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

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

HDFS DataNode Decommission

  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自動啟動Decommission。

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

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

    hadoop dfsadmin -report

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

SmartData JindoStorageService Decommission(Hadoop叢集)

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

    1. 登入E-MapReduce控制台

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

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

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

  2. 下線目標節點的JindoStorageService。

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

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

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

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

HBase HRegionServer Decommission

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

    1. 登入E-MapReduce控制台

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

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

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

  2. 下線目標節點的HRegionServer。

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

    2. 在彈出的對話方塊中,輸入執行原因,單擊確定

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

StarRocks Decommission

  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-HDFS DataNode Decommission

  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自動啟動Decommission。

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

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

    hadoop dfsadmin -report

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

釋放節點

重要

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

  1. 進入節點管理頁面。

    1. 登入E-MapReduce控制台

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

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

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

    即可進入ECS控制台。

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

相關文檔

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