偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

StarRocks 如何在本地搭建存算分離集群

開發(fā) 前端
經(jīng)過 debug 發(fā)現(xiàn)是在添加節(jié)點的時候,由于生成的 workerIpPort? 與上一個節(jié)點相同(127.0.0.1:9060) 從而導(dǎo)致這個節(jié)點被跳過了。

最近在本地調(diào)試一個場景,需要 CN 節(jié)點是以集群的方式啟動,我還是按照老方法[2]通過 docker 啟動 CN,然后 export 端口的方式讓 FE 進行綁定。

比如用以下兩個命令可以啟動兩個 CN 節(jié)點。

docker run -p 9060:9060 -p 8040:8040 -p 9050:9050 -p 8060:8060 -p 9070:9070 -itd --rm --name cn -e "TZ=Asia/Shanghai" starrocks/cn-ubuntu:3.5.2
docker run -p 9061:9060 -p 8041:8040 -p 9051:9050 -p 8061:8060 -p 9071:9070 -itd --rm --name cn2 -e "TZ=Asia/Shanghai" starrocks/cn-ubuntu:3.5.2

然后按照之前的方式在 FE 中手動綁定這兩個節(jié)點:

ALTER SYSTEM ADD COMPUTE NODE "127.0.0.1:9050";  
ALTER SYSTEM ADD COMPUTE NODE "127.0.0.1:9051";  
show compute nodes;

圖片圖片

此時會出現(xiàn)新增的第二個節(jié)點的狀態(tài)有問題,比如 metrics 取不到,workerId 是-1(-1 代表節(jié)點創(chuàng)建失敗了,默認值是 -1)

圖片圖片

圖片圖片

經(jīng)過 debug 發(fā)現(xiàn)是在添加節(jié)點的時候,由于生成的 workerIpPort 與上一個節(jié)點相同(127.0.0.1:9060) 從而導(dǎo)致這個節(jié)點被跳過了。

也就是說我這兩個 CN 節(jié)點不能是相同的 IP(用不同的端口來區(qū)分)。

解決這個問題有以下幾個辦法:

? 再找一個臺機器來跑 CN2 節(jié)點

? 啟動一個虛擬機來跑 CN2 節(jié)點

? 使用 docker compose 來啟動 CN 集群,會在集群內(nèi)自動分配不同的 IP

? 利用 Docker Bridge 創(chuàng)建一個虛擬網(wǎng)絡(luò),由他來分配 IP

第一種方案直接 Pass 了,我手上沒有多余的設(shè)備。

第二種方案倒是可以直接用 OrbStack 啟動一個 VM,但是還不如后面的 docker 來的輕量,此外還需要我安裝運行環(huán)境,也 pass 了。

第三種方案看似可行,但也比較繁瑣,由于 CN 給 docker compose 管理了,F(xiàn)E 要和 CN 網(wǎng)絡(luò)打通也得在 docker compose 里運行,這樣我 Debug 就不方便了,更別提如果需要頻繁修改源碼的情況。

甚至每次修改代碼后都得重新打包上傳鏡像,以及開啟 remote debug,非常麻煩。

這么看來就第四種方案最為合適了。

使用 Docker Bridge 網(wǎng)絡(luò)

我們可以使用 Docker Bridge 創(chuàng)建一個虛擬網(wǎng)絡(luò),使用這個虛擬網(wǎng)絡(luò)啟動的鏡像會自動分配自定義范圍的 IP;同時本地啟動的 FE 也能直接訪問。

docker network create --subnet=172.18.0.0/16 --gateway=172.18.0.1 my_custom_net

首先用 docker 創(chuàng)建一個 network。

  • ? --subnet=172.18.0.0/16: 定義網(wǎng)絡(luò)的 IP 地址范圍。這里我們使用了 172.18.x.x 這個私有網(wǎng)段。
  • ? --gateway=172.18.0.1: 指定這個網(wǎng)絡(luò)的網(wǎng)關(guān)地址。

之后我們就可以使用這個虛擬網(wǎng)絡(luò)來啟動容器了。

docker run --ip 172.18.0.20 --net my_custom_net -p 9060:9060 -p 8040:8040 -p 9050:9050 -p 8060:8060 -p 9070:9070 -itd --rm --name cn -e "TZ=Asia/Shanghai" starrocks/cn-ubuntu:3.5.2

docker run --ip 172.18.0.30 --net my_custom_net -p 9061:9060 -p 8041:8040 -p 9051:9050 -p 8061:8060 -p 9071:9070 -itd --rm --name cn2 -e "TZ=Asia/Shanghai" starrocks/cn-ubuntu:3.5.2

這樣這兩個容器就會被分配不同的 IP,并且網(wǎng)絡(luò)和宿主機也是互通的。

需要注意的是這里的子網(wǎng)盡量選擇 172.16.0.0 到 172.31.255.255 這個 IP 段,192.168.0.0 到 192.168.255.255 這個范圍段很有可能家里或公司的路由器占用了。

而這里的網(wǎng)關(guān) --gateway=172.18.0.1地址也需要在我們自定義的 IP 范圍里。

同時我們也不需要在這兩個容器內(nèi)為 CN 指定 priority_networks 參數(shù)了。

同理 minio 也得使用這個虛擬網(wǎng)絡(luò)啟動:

docker run -d --rm --name minio \
  --ip 172.18.0.10 \
  --net my_custom_net \
  -e MINIO_ROOT_USER=miniouser \
  -e MINIO_ROOT_PASSWORD=miniopassword \
  -p 9001:9001 \
  -p 9000:9000 \
  --entrypoint sh \
  minio/minio:latest \
  -c 'mkdir -p /minio_data/starrocks && minio server /minio_data --console-address ":9001"'

設(shè)置 token 的時候也要指定對應(yīng)的 IP:

mc alias set myminio http://172.18.0.10:9000 miniouser miniopassword; mc admin user svcacct add --access-key AAAAAAAAAAAAAAAAAAAA --secret-key BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB myminio miniouser

當 CN 和 minio 都啟動之后,我們在 FE 里手動綁定這兩個 CN 節(jié)點:

ALTER SYSTEM ADD COMPUTE NODE "172.18.0.20:9050";
ALTER SYSTEM ADD COMPUTE NODE "172.18.0.30:9050"

這樣這兩個節(jié)點就可以綁定成功了。

引用鏈接

[1] StarRocks 開發(fā)環(huán)境搭建踩坑指北之存算分離篇: https://crossoverjie.top/2025/02/26/ob/StarRocks-dev-shard-data-build/

[2] 老方法: https://crossoverjie.top/2025/02/26/ob/StarRocks-dev-shard-data-build/

責任編輯:武曉燕 來源: crossoverJie
相關(guān)推薦

2025-02-26 12:06:07

2022-09-02 07:39:15

存算存儲私有云

2025-05-15 08:08:51

StarRocksFEJava

2024-08-20 09:13:10

2022-10-25 18:02:31

大數(shù)據(jù)存算分離

2024-10-08 14:52:37

2024-10-09 08:09:11

2010-10-28 09:21:42

oracle中存圖片

2016-01-07 09:36:20

Docker容器

2023-09-07 13:34:00

云原生數(shù)據(jù)倉庫

2018-11-08 09:00:31

樹莓派WordPressLinux

2024-07-22 15:49:07

KubernetesRedis

2010-06-04 18:17:50

Hadoop集群

2014-06-30 09:27:17

UbuntuTomcat集群

2018-06-13 14:42:53

集群虛擬化搭建

2020-10-27 18:45:45

GolangGraphQ開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號