當EMR叢集資源過剩時,為了保障HDFS資料的穩定性,您需要對Core節點群組進行手動縮容。此外,由於訂用帳戶的Task節點群組不支援自動縮容,您也需要進行手動退訂。
注意事項
本文操作均無法復原,一旦開始下線操作後,無法恢複原有狀態。
本文操作為最佳實務操作示範,請結合叢集實際情況進行評估後謹慎操作,避免叢集任務調度失敗以及資料安全的風險。
下線前準備
您可以根據叢集服務負載情況,選擇需要下線的節點。您需要計算待下線節點的規格,避免節點縮容後造成叢集負載過高。
如果叢集屬於以下情況,需要特殊注意:
如果
Core節點的數量 = HDFS的副本數量
,請勿縮容Core節點。如果您的叢集為非高可用叢集,請勿縮容emr-worker-1和emr-worker-2 節點。
如果您的叢集為高可用叢集,但Master節點數為2,請勿縮容emr-worker-1節點。
服務元件Decommission
如果您的叢集安裝了以下服務,請在刪除ECS前對已安裝的這些服務元件先進行Decommission操作,否則可能會導致任務調度失敗以及資料安全的問題。
YARN NodeManager Decommission
進入YARN服務的狀態頁面。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
在EMR on ECS頁面,單擊目的地組群操作列的叢集服務。
在叢集服務頁面,單擊YARN服務地區的狀態。
下線目標節點的NodeManager。
在組件列表中,單擊NodeManager操作列中的下線。
在彈出的對話方塊中,選擇執行範圍、輸入執行原因、單擊確定。
在彈出的對話方塊中,單擊確定。
單擊右上方的操作歷史,可以查看操作進度。
HDFS DataNode Decommission
通過SSH方式登入叢集Master節點,詳見請參見登入叢集。
切換到hdfs使用者,並查看當前NameNode的個數。
sudo su - hdfs hdfs haadmin -getAllServiceState
依次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
在任一NameNode所在節點,切換到hdfs使用者,執行重新整理命令,HDFS自動啟動Decommission。
sudo su - hdfs hdfs dfsadmin -refreshNodes
確認下線結果。
輸⼊以下命令,判斷decommission過程是否已經完成。
hadoop dfsadmin -report
當指定節點的Decommission Status為Decommissioned,即表示該節點DataNode的資料已經遷移⾄其他節點,下線操作已經完成。
SmartData JindoStorageService Decommission(Hadoop叢集)
進入SmartData服務的狀態頁面。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
在EMR on ECS頁面,單擊目的地組群操作列的叢集服務。
在叢集服務頁面,單擊SmartData服務地區的狀態。
下線目標節點的JindoStorageService。
在組件列表中,單擊JindoStorageService操作列中的下線。
在彈出的對話方塊中,選擇執行範圍、輸入執行原因、單擊確定。
在彈出的對話方塊中,單擊確定。
單擊右上方的操作歷史,可以查看操作進度。
HBase HRegionServer Decommission
進入HBase服務的狀態頁面。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
在EMR on ECS頁面,單擊目的地組群操作列的叢集服務。
在叢集服務頁面,單擊HBase服務地區的狀態。
下線目標節點的HRegionServer。
在組件列表中,單擊HRegionServer操作列中的停止。
在彈出的對話方塊中,輸入執行原因,單擊確定。
單擊右上方的操作歷史,可以查看操作進度。
StarRocks Decommission
登入叢集並使用用戶端訪問叢集,詳情請參見快速入門。
執行如下命令,通過
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";
執行以下命令,觀察BE狀態。
show backends;
SystemDecommissioned為true的節點,表示進行中Decommission。當BE節點的TabletNum為0時,系統會清理中繼資料。
如果圖中查看不到BE節點,則說明下線成功。
HBASE-HDFS DataNode Decommission
通過SSH方式登入叢集Master節點,詳見請參見登入叢集。
執行以下命令,切換到hdfs使用者並設定環境變數。
sudo su - hdfs export HADOOP_CONF_DIR=/etc/taihao-apps/hdfs-conf/namenode
執行以下命令,查看當前NameNode的資訊。
hdfs dfsadmin -report
依次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
在任一NameNode所在節點,切換到hdfs使用者,執行重新整理命令,HDFS自動啟動Decommission。
sudo su - hdfs export HADOOP_CONF_DIR=/etc/taihao-apps/hdfs-conf/namenode hdfs dfsadmin -refreshNodes
確認下線結果。
輸⼊以下命令,判斷decommission過程是否已經完成。
hadoop dfsadmin -report
當指定節點的Decommission Status為Decommissioned,即表示該節點DataNode的資料已經遷移⾄其他節點,下線操作已經完成。
釋放節點
您需要登入ECS控制台對叢集節點進行操作,如果您是RAM使用者,則需要您具有ECS相關許可權,建議授權AliyunECSFullAccess。
進入節點管理頁面。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
在EMR on ECS頁面,單擊目的地組群操作列的節點管理。
在節點管理頁面,單擊待釋放節點的ECS ID。
即可進入ECS控制台。
在ECS控制台上對執行個體進行釋放操作,詳情請參見釋放執行個體。
相關文檔
對於隨用隨付和搶佔式執行個體的Task節點群組的縮容操作,詳情請參見縮容叢集。