stargo縮擴容starrocks集群,實現節點服務器替換

1.背景

????????在企業中可能需要,將starrocks的某一臺服務器下架,換上另一臺服務器,如何實現這個操作,本篇將進行介紹;

節點hadoop101hadoop102hadoop103hadoop104
集群原集群節點新節點
fe???(下線)?(新上線)
be???(下線)?(新上線)

2.原表副本情況

創建一個測試表

CREATE TABLE IF NOT EXISTS detail (event_time DATETIME NOT NULL COMMENT "datetime of event",event_type INT NOT NULL COMMENT "type of event",user_id INT COMMENT "id of user",device_code INT COMMENT "device code",channel INT COMMENT "")DUPLICATE KEY(event_time, event_type)DISTRIBUTED BY HASH(user_id)PROPERTIES ("replication_num" = "3");

查看分本在節點的分布情況,可以看出在三節點均勻分布

mysql> ADMIN SHOW REPLICA DISTRIBUTION FROM detail;
+-----------+------------+-------+---------+
| BackendId | ReplicaNum | Graph | Percent |
+-----------+------------+-------+---------+
| 10007     | 6          | >     | 33.33 % |
| 10084     | 6          | >     | 33.33 % |
| 10085     | 6          | >     | 33.33 % |
+-----------+------------+-------+---------+
3 rows in set (0.10 sec)

3.擴容集群

stargo 中的"集群擴容"是指集群的"橫向擴容",即為原有的集群增加 FE、BE 或 Broker 節點。

語法:

./stargo cluster scale-out <cluster_name> <topology_file>
## cluster_name:需擴容集群的集群名,例如這里的'sr-c1'
## topology_file:包含擴容節點對應信息的yaml拓撲文件,文件名稱隨意,stargo通過該文件獲取擴容節點的ip、端口及目錄信息

3.0 配置ssh

在執行擴容命令前,我們仍需在目標服務器上手動創建對應的目錄,并配置 stargo 所在節點對目標節點的免密。

3.1 編輯yaml文件

擴容的 yaml 文件中只需要配置需擴容節點相關的信息,不需要也不能填寫已有集群的信息。擴容的 yaml 不需要編寫 global 中的信息,這部分會直接沿用原集群的信息。其他信息參考部署時的模板文件填入即可,例如 sr-out.yaml:

[root@hadoop101 stargo-v2.3]# vim sr-out.yamlfe_servers:- host: 192.21.243.51ssh_port: 22java_heap_mem: 10240http_port: 8031rpc_port: 9021query_port: 9031edit_log_port: 9011deploy_dir: /opt/module/starrocks/femeta_dir: /data/starrocks/fe/metalog_dir: /data/starrocks/fe/logpriority_networks: 172.21.243.51role: FOLLOWERconfig:sys_log_level: "INFO"
be_servers:- host: 192.21.243.51ssh_port: 22be_port: 9061webserver_port: 8041heartbeat_service_port: 9051brpc_port: 8061deploy_dir : /opt/module/starrocks/bestorage_dir: /data/starrocks/be/storagelog_dir: /data/starrocks/be/logpriority_networks: 172.21.243.51config:enable_new_load_on_memory_limit_exceeded: truemem_limit: 90%

3.2 在新節點上創建目錄

[root@hadoop104 ~] mkdir /data/starrocks
[root@hadoop104 ~] mkdir /opt/module/starrocks

3.3 運行檢查

分發stargo到hadoop104

運行服務檢查

[root@hadoop104 stargo-v2.3] ./env_check.sh ############################ CPU檢查 #############################
success########################## Linux版本檢查 ##########################
success########################## Glibc版本檢查 ##########################
success############################ Swap檢查 ############################
success
success########################### 內核參數檢查 ##########################
success
success####################### 進程最大打開文件數檢查 ######################
success####################### 用戶最大可用進程數檢查 ######################
success########################### FE端口檢查 ###########################
success########################### BE端口檢查 ###########################
success######################### Broker端口檢查 #########################
success########################### 防火墻檢查 ###########################
success########################## TCP參數檢查 ###########################
success######################### Somaxconn檢查 #########################
success########################## SELinux檢查 ###########################
success########################## Hugepage檢查 ##########################
success
success########################## 時鐘同步檢查 ##########################
success############################ 時區檢查 ############################
success########################## 磁盤容量檢查 ##########################
success########################## 內存大小檢查 ##########################
服務器內存較小,為保證集群性能和穩定性,生產環境的建議內存為32G+######################### Netstat命令檢查 ########################
success

3.4 執行擴容命令

[root@hadoop101 stargo-v2.3] ./stargo cluster scale-out sr-c1 sr-out.yaml############################################# SCALE OUT BE CLUSTER #############################################
############################################# SCALE OUT BE CLUSTER #############################################
[2025-08-27 19:04:34.728881    INFO] Starting BE node [BeHost = 172.21.243.51 HeartbeatServicePort = 9051]
[2025-08-27 19:04:58.787840    INFO] The BE node start succefully [host = 172.21.243.51, heartbeatServicePort = 9051]
[2025-08-27 19:04:58.787926  OUTPUT] List all BE status:beHost = 172.21.243.51       beHeartbeatServicePort = 9051      beStatus = true[root@hadoop101 stargo-v2.3] ./stargo cluster display sr-c1
[2025-08-27 19:05:17.874878    INFO] Display cluster [clusterName = sr-c1]
clusterName = sr-c1
clusterVerison = v3.0.9
ID                          ROLE    HOST                  PORT             STAT        DEPLOYDIR                                           DATADIR                                           
--------------------------  ------  --------------------  ---------------  ----------  --------------------------------------------------  --------------------------------------------------
172.21.243.157:9011         FE      172.21.243.157        9011/9031        UP          /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.14:9011          FE      172.21.243.14         9011/9031        UP/L        /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.19:9011          FE      172.21.243.19         9011/9031        UP          /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.51:9011          FE      172.21.243.51         9011/9031        UP          /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.157:9061         BE      172.21.243.157        9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.14:9061          BE      172.21.243.14         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.19:9061          BE      172.21.243.19         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.51:9061          BE      172.21.243.51         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage 

3.5 查看集群塊存儲分布情況

mysql> ADMIN SHOW REPLICA DISTRIBUTION FROM detail;
+-----------+------------+-------+---------+
| BackendId | ReplicaNum | Graph | Percent |
+-----------+------------+-------+---------+
| 10007     | 4          | >     | 22.22 % |
| 10084     | 5          | >>    | 27.78 % |
| 10085     | 5          | >>    | 27.78 % |
| 13036     | 4          | >     | 22.22 % |
+-----------+------------+-------+---------+
4 rows in set (0.01 sec)

starrocks會自動執行數據均衡

4.縮容集群

stargo 中的集群縮容仍是指橫向縮容,即將集群中的某個節點在集群中刪除。對于 FE、CN 和 Broker 實例,stargo 會直接執行 Drop 命令,該命令為同步操作,執行后對應節點即完成縮容。而對于 BE 實例,基于數據安全考慮,stargo 會執行 DECOMMISSION 命令,該命令為異步操作,需等待目標 BE 將自己的數據遷移至集群其他節點后才會脫離集群完成縮容,所以實際的縮容時間會隨該節點數據量的增大而增加。

說明:

1)FE Leader節點不允許縮容,可以先停止其服務待集群重新選主后再執行縮容。

2)BE 是否被執行縮容可通過 show backends; 命令返回值中的 SystemDecommissioned 是否為 true 來判斷。在 BE 開始縮容后,其上的 tablet 會自動遷移至集群其他節點,故 BE 的縮容進度可通過返回值中的 TabletNum 剩余數來粗估。

3)因 DECOMMISSION 為異步操作,stargo 僅會在執行縮容命令后給出提示,并不會一直等待縮容完成。若發現集群縮容一直未完成,在確認集群中表都為三副本且集群中沒有不健康副本后,可在 StarRocks 中對該 BE 再次執行 drop 命令。

集群縮容的語法為:

./stargo cluster scale-in <cluster_name> --node <nodeId>
## cluster_name:需縮容的集群名稱
## nodeId:縮容節點的節點ID,即為通過display命令查到的ID字段值

4.1 先縮容FE節點

先查看集群狀態

[root@hadoop101 stargo-v2.3] ./stargo cluster display sr-c1
[2025-08-27 19:15:31.442134    INFO] Display cluster [clusterName = sr-c1]
clusterName = sr-c1
clusterVerison = v3.0.9
ID                          ROLE    HOST                  PORT             STAT        DEPLOYDIR                                           DATADIR                                           
--------------------------  ------  --------------------  ---------------  ----------  --------------------------------------------------  --------------------------------------------------
172.21.243.157:9011         FE      172.21.243.157        9011/9031        UP          /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.14:9011          FE      172.21.243.14         9011/9031        UP/L        /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.19:9011          FE      172.21.243.19         9011/9031        UP          /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.51:9011          FE      172.21.243.51         9011/9031        UP          /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.157:9061         BE      172.21.243.157        9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.14:9061          BE      172.21.243.14         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.19:9061          BE      172.21.243.19         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.51:9061          BE      172.21.243.51         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage      

退役hadoop103節點FE服務

[root@hadoop101 stargo-v2.3] ./stargo cluster scale-in sr-c1 --node 172.21.243.19:9011
[2025-08-27 19:16:23.388499  OUTPUT] Start scale in cluster [clusterName = sr-c1, nodeId = 172.21.243.19:9011]
[2025-08-27 19:16:23.959336  OUTPUT] Scale in FE node successfully. [clusterName = sr-c1, nodeId = 172.21.243.19:9011]

查看集群節點退役成功

[root@hadoop101 stargo-v2.3] ./stargo cluster display sr-c1
[2025-08-27 19:16:32.184010    INFO] Display cluster [clusterName = sr-c1]
clusterName = sr-c1
clusterVerison = v3.0.9
ID                          ROLE    HOST                  PORT             STAT        DEPLOYDIR                                           DATADIR                                           
--------------------------  ------  --------------------  ---------------  ----------  --------------------------------------------------  --------------------------------------------------
172.21.243.157:9011         FE      172.21.243.157        9011/9031        UP          /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.14:9011          FE      172.21.243.14         9011/9031        UP/L        /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.51:9011          FE      172.21.243.51         9011/9031        UP          /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.157:9061         BE      172.21.243.157        9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.14:9061          BE      172.21.243.14         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.19:9061          BE      172.21.243.19         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.51:9061          BE      172.21.243.51         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage               

4.2 縮容BE節點

[root@hadoop101 stargo-v2.3] ./stargo cluster scale-in sr-c1 --node 172.21.243.19:9061
[2025-08-27 19:20:52.360015  OUTPUT] Start scale in cluster [clusterName = sr-c1, nodeId = 172.21.243.19:9061]
[2025-08-27 19:20:52.472146  OUTPUT] Scale in BE node successfully. [clusterName = sr-c1, nodeId = 172.21.243.19:9061]
[2025-08-27 19:20:52.472177  OUTPUT] 注意:BE的縮容為異步操作,當前提示僅代表縮容命令執行完成。縮容命令執行后,后臺會先將目標節點的tablet遷移至集群其他BE節點,在遷移完成后將該BE將自動脫離集群。Tablet遷移進度可通過"show backends;"語句查看TabletNum進行判斷。若目標節點的tablet僅剩數十個且TabletNum長時間不減少,則可考慮執行"show proc '/statistic';"語句,在確認集群無不健康tablet副本后將目標BE手動Drop掉。

查看集群狀態節點退役成功

[root@hadoop101 stargo-v2.3] ./stargo cluster display sr-c1
[2025-08-27 19:26:18.927756    INFO] Display cluster [clusterName = sr-c1]
clusterName = sr-c1
clusterVerison = v3.0.9
ID                          ROLE    HOST                  PORT             STAT        DEPLOYDIR                                           DATADIR                                           
--------------------------  ------  --------------------  ---------------  ----------  --------------------------------------------------  --------------------------------------------------
172.21.243.157:9011         FE      172.21.243.157        9011/9031        UP          /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.14:9011          FE      172.21.243.14         9011/9031        UP/L        /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.51:9011          FE      172.21.243.51         9011/9031        UP          /opt/module/starrocks/fe                            /data/starrocks/fe/meta                           
172.21.243.157:9061         BE      172.21.243.157        9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.14:9061          BE      172.21.243.14         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage                        
172.21.243.51:9061          BE      172.21.243.51         9061/9051        UP          /opt/module/starrocks/be                            /data/starrocks/be/storage 

查看集群塊分布情況,數據均衡退役成功

mysql> ADMIN SHOW REPLICA DISTRIBUTION FROM detail;
+-----------+------------+-------+---------+
| BackendId | ReplicaNum | Graph | Percent |
+-----------+------------+-------+---------+
| 10007     | 6          | >     | 33.33 % |
| 10084     | 6          | >     | 33.33 % |
| 13036     | 6          | >     | 33.33 % |
+-----------+------------+-------+---------+

5.查看集群元數據

集群節點已經替換為新添加的節點,舊節點從集群元文件中刪除

[root@hadoop101 sr-c1] vim /root/.stargo/cluster/sr-c1/meta.yaml

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/97294.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/97294.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/97294.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux -- 進程間通信【命名管道】

目錄 一、命名管道定義 二、命名管道創建 1、指令 2、系統調用 3、刪除 三、匿名管道和命名管道的區別 四、命名管道的打開規則 五、代碼示例 1、comm.hpp 2、server.cc 3、client.cc 一、命名管道定義 # 匿名管道存在以下核心限制&#xff1a; 僅限親緣關系進程&a…

LinuxC系統多線程程序設計

一.多線程程序設計1. 線程概述&#xff1a;1.1 什么是線程?線程是進程中的一個實體(組成單元),是系統進程調度的最小單元。一個進程至少具有一個線程&#xff0c;如果進程僅有一個線程&#xff0c;該線程就代表進程本身。把代表進程本身的線程稱為主線程&#xff0c;一個進程…

Vue3 + TS + MapboxGL.js 三維地圖開發項目

文章目錄 1. 安裝依賴 2. 新建 Map 組件(components/MapView.vue) 3. 在頁面中使用(views/Home.vue) 4. 效果說明 1. 安裝依賴 npm install mapbox-gl @types/mapbox-gl --save?? 注意:需要去 Mapbox 官網,申請一個 access token。 package.json {"name":…

【編程語言】Rust 入門

目錄 一、Rust 是什么&#xff1f;為什么選擇它&#xff1f; 二、環境搭建&#xff0c;邁出第一步 2.1 Windows 系統安裝步驟 2.2 macOS 系統安裝步驟 2.3 Linux 系統安裝步驟 2.4 安裝過程中的常見問題及解決方案 三、基礎語法&#xff0c;構建知識大廈的基石 3.1 變量…

Python 編碼與加密全解析:從字符編碼到 RSA 簽名驗證

在 Python 開發中&#xff0c;字符編碼&#xff08;如 UTF-8、GBK&#xff09;和 數據加密&#xff08;如 Base64、MD5、RSA&#xff09;是處理數據傳輸、存儲安全的核心技術。本文結合實戰代碼&#xff0c;從基礎的字符編解碼入手&#xff0c;逐步深入到加密算法的應用&#x…

關于shell命令的擴展

目錄 一、邏輯運算符 1. &&&#xff08;AND&#xff09; 2. ||&#xff08;OR&#xff09; 3. 組合使用&#xff1a;A && B || C 二、輸出與重定向 1. echo 輸出 2. 標準文件描述符&#xff08;FD&#xff09; 3. 重定向操作符 4. 同時重定向 stdout 和…

MySQL EXPLAIN 查看執行計劃詳解

MySQL 的 EXPLAIN 命令。這是一個分析和優化 SQL 查詢性能不可或缺的強大工具。它展示了 MySQL 如何執行一條 SQL 語句&#xff0c;包括如何使用索引、表連接順序、估計的行數等關鍵信息。1. 如何使用 EXPLAIN在你要分析的 SELECT 語句前加上 EXPLAIN 或 EXPLAIN FORMATJSON&am…

TensorFlow 面試題及詳細答案 120道(51-60)-- 模型保存、加載與部署

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 51. TensorFlow中保存和加…

從零開始學Shell編程:從基礎到實戰案例

從零開始學Shell編程&#xff1a;從基礎到實戰案例 文章目錄從零開始學Shell編程&#xff1a;從基礎到實戰案例一、認識Shell&#xff1a;是什么與為什么學1.1 Shell的定義1.2 常用Shell解釋器二、Shell編程快速入門&#xff1a;編寫第一個腳本2.1 步驟1&#xff1a;創建腳本文…

機器學習算法全景解析:從理論到實踐

機器學習算法全景解析&#xff1a;從理論到實踐引言機器學習作為人工智能的核心組成部分&#xff0c;正在深刻地改變我們的世界。從推薦系統到自動駕駛&#xff0c;從醫療診斷到金融風控&#xff0c;機器學習算法無處不在。本文將全面系統地介紹機器學習的主要算法類別及其核心…

week5-[二維數組]對角線

week5-[二維數組]對角線 題目描述 給定一個 nnn\times nnn 的正方形二維數組&#xff0c;輸出它兩條對角線上元素的和。 輸入格式 輸入共 n1n 1n1 行。 第 111 行 111 個正整數 nnn。 接下來 nnn 行&#xff0c;每行 nnn 個正整數 aija_{ij}aij? 表示這個二維數組。 輸出格式…

GoogLeNet:深度學習中的“卷積網絡變形金剛“

大家好&#xff01;今天我們要聊一個在深度學習領域掀起革命的經典網絡——GoogLeNet&#xff08;又稱Inception v1&#xff09;。這個由Google團隊在2014年提出的模型&#xff0c;不僅拿下了ImageNet競賽冠軍&#xff0c;更用"網絡中的網絡"設計理念徹底改變了卷積神…

筆記本電腦藍牙搜索不到設備-已解決

方法1打開疑難解答&#xff0c;選擇其他疑難解答&#xff0c;下劃選擇藍牙&#xff0c;點擊運行&#xff0c;電腦自行檢測并修復藍牙方法2右鍵此電腦&#xff0c;選擇管理&#xff0c;找到自己的藍牙設備。然后對箭頭指向的這個點擊右鍵&#xff0c;選擇《更新驅動程序》&#…

WPF 程序用戶權限模塊利用MarkupExtension實現控制控件顯示

工作記錄 ------------------------------------------------------------------------------------------------------- MarkupExtension:XAML標記擴展 實現了什么作用&#xff1a;通過擴展標記將一種輸入轉化為另一種類型的輸出 思路&#xff1a; 不直接設置控件的Visib…

SpringMVC相關梳理

SpringMVC 返回值類型&#xff08;一&#xff09;核心返回值類型分類視圖渲染類&#xff1a;用于跳轉并渲染頁面&#xff0c;如String&#xff08;指定視圖名&#xff09;、ModelAndView&#xff08;視圖 數據&#xff09;。數據返回類&#xff1a;用于返回數據&#xff08;而…

Docker化性能監控平臺搭建:JMeter+InfluxDB+Grafana全攻略

你作為一名DevOps工程師或測試專家&#xff0c;正在監控一個高并發微服務系統&#xff1a;突發流量峰值導致響應延遲&#xff0c;服務器CPU飆升&#xff0c;但你只能手動查看日志&#xff0c;優化起來像大海撈針。這時&#xff0c;DockerJMeterInfluxDBGrafana的“夢幻四重奏”…

Adobe Acrobat 中通過 JavaScript 調用 Web 服務

強大的JavaScript支持&#xff0c;允許用戶通過腳本自動化處理PDF文檔。本文將詳細介紹如何在Adobe Acrobat環境中使用JavaScript調用Web服務&#xff0c;包括基礎概念、實現方法、代碼示例以及常見問題解決方案。 第一部分&#xff1a;基礎概念與技術背景 1.1 Acrobat JavaScr…

SpringCloud OpenFeign 遠程調用(RPC)(三)

目錄 1 概念導入 2 添加依賴 3 在啟動類上添加注解 4 編寫對應的接口 5 注入并調用 6 日志 7 超時控制 8 超時重試 9 攔截器 10 Fallback兜底 1 概念導入 Spring Cloud OpenFeign Features :: Spring Cloud Openfeign 2 添加依賴 <!-- 遠程調用 --><depen…

【Flask】測試平臺開發,登陸重構

概述我們在開篇的時候實現了簡單的登陸功能&#xff0c;也實現了一個前后端聯調的登陸功能&#xff0c;但是你有沒有發現&#xff0c;那個登陸只是一個簡單的登陸&#xff0c;且密碼在接口返回的過程中是銘文密碼&#xff0c;在生產環境中使用肯定是不行的&#xff0c;一般密碼…

【Bluedroid】A2DP Source設備音頻數據讀取機制分析(btif_a2dp_source_read_callback)

本文聚焦Android 藍牙 A2DP Source設備的音頻數據讀取核心邏輯,深入解析關鍵回調函數btif_a2dp_source_read_callback的功能實現,包括從 HAL(硬件抽象層,支持 HIDL/AIDL 兩種傳輸方式)或 UIPC(用戶空間進程間通信)獲取音頻數據的路徑選擇機制,以及數據下溢(Underflow)…