當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節點組的縮容操作,詳情請參見縮容集群。