TDengine 叢集 多機器docker 部署

文艺流浪汉發表於2024-04-28

參考

https://docs.taosdata.com/deployment/docker/


https://blog.csdn.net/dixialieren/article/details/128290211

三臺裝置,每臺機器啟動一個

ip

port

hostname

192.168.2.201

6041

node1

192.168.2.202

6041

node2

192.168.2.203

6041

node3

step1 每臺機子修改hostname

hostnamectl set-hostname node1

hostnamectl

hostnamectl set-hostname node2

hostnamectl

hostnamectl set-hostname node3

hostnamectl

每臺機器 建立資料夾

mkdir -p /data/tdengine/dnode/conf && cd /data/tdengine/dnode/conf

step2 config taos.cfg

node1etc

vi /data/tdengine/dnode/conf/taos.cfg

# taosd啟動時,主動連線的叢集中第一個dnode的end point, 預設值為localhost:6030。
firstEp node1:6030
# taosd啟動時,如果first連線不上,嘗試連線叢集中第二個dnode的end point, 預設值為空。
secondEp node1:6030
# 資料節點的FQDN,預設為作業系統配置的第一個hostname。如果習慣IP地址訪問,可設定為該節點的IP地址。
fqdn node1
# taosd啟動後,對外服務的埠號,預設值為6030。
serverPort 6030
# system time zone
timezone UTC-8
# system locale
# locale en_US.UTF-8
# system charset
# charset UTF-8
monitor 1
monitorFQDN buildkitsandbox
audit 1

node2etc

vi /data/tdengine/dnode/conf/taos.cfg
# taosd啟動時,主動連線的叢集中第一個dnode的end point, 預設值為localhost:6030。

firstEp node1:6030
# taosd啟動時,如果first連線不上,嘗試連線叢集中第二個dnode的end point, 預設值為空。
secondEp node2:6030
# 資料節點的FQDN,預設為作業系統配置的第一個hostname。如果習慣IP地址訪問,可設定為該節點的IP地址。
fqdn node2
# taosd啟動後,對外服務的埠號,預設值為6030。
serverPort 6030
# system time zone
timezone UTC-8
# system locale
# locale en_US.UTF-8
# system charset
# charset UTF-8
monitor 1
monitorFQDN buildkitsandbox
audit 1

node3etc

vi /data/tdengine/dnode/conf/taos.cfg

# taosd啟動時,主動連線的叢集中第一個dnode的end point, 預設值為localhost:6030。
firstEp node1:6030
# taosd啟動時,如果first連線不上,嘗試連線叢集中第二個dnode的end point, 預設值為空。
secondEp node2:6030
# 資料節點的FQDN,預設為作業系統配置的第一個hostname。如果習慣IP地址訪問,可設定為該節點的IP地址。
fqdn node3
# taosd啟動後,對外服務的埠號,預設值為6030。
serverPort 6030
# system time zone
timezone UTC-8
# system locale
# locale en_US.UTF-8
# system charset
# charset UTF-8
monitor 1
monitorFQDN buildkitsandbox
audit 1

step3 每臺機子分別啟動

node1

docker run -d --name tdengine --restart always \
-p 6030:6030 \
-p 6041-6049:6041-6049/tcp \
-p 6041-6049:6041-6049/udp \
--add-host node2:192.168.2.202 --add-host node3:192.168.2.203 \
-v /data/tdengine/dnode/log:/var/log/taos \
-v /data/tdengine/dnode/data:/var/lib/taos \
-v /data/tdengine/dnode/conf/taos.cfg:/etc/taos/taos.cfg \
tdengine/tdengine:latest

node2

 docker run -d --name tdengine --restart always \
-p 6030:6030 \
-p 6041-6049:6041-6049/tcp \
-p 6041-6049:6041-6049/udp \
--add-host node1:192.168.2.201 --add-host node3:192.168.2.203 \
-v /data/tdengine/dnode/log:/var/log/taos \
-v /data/tdengine/dnode/data:/var/lib/taos \
-v /data/tdengine/dnode/conf/taos.cfg:/etc/taos/taos.cfg \
tdengine/tdengine:latest

node3
docker run -d --name tdengine --restart always \
-p 6030:6030 \
-p 6041-6049:6041-6049/tcp \
-p 6041-6049:6041-6049/udp \
--add-host node1:192.168.2.201 --add-host node2:192.168.2.202 \
-v /data/tdengine/dnode/log:/var/log/taos \
-v /data/tdengine/dnode/data:/var/lib/taos \
-v /data/tdengine/dnode/conf/taos.cfg:/etc/taos/taos.cfg \
tdengine/tdengine:latest

用 TDengine CLI 檢視 dnodes

docker exec tdengine taos -s "show dnodes"

step4 add data node

進node1

docker exec -it tdengine /bin/bash
taos;
create dnode "node2:6030";
create dnode "node3:6030";
show dnodes;
show mnodes;

修改密碼

進入容器

docker exec -it tdengine /bin/bash
taos
alter user root pass '123456';


2. 客戶端配置

9、客戶端連線配置

# 在C:\Windows\System32\drivers\etc\hosts檔案中localhost name resolution is handled within DNS itself.下新增:

# 10.0.31.2 taosnode1 taosnode2 taosnode3

# 客戶端下載地址:https://www.taosdata.com/cn/getting-started/#Quick%20Start

# 客戶端下載之後直接安裝即可,預設路徑C:\TDengine

# 修改C:\TDengine\cfg\taos.cfg,設定firstEp為taosnode1:6030,secondEp為taosnode2:7030

# 設定secondEp主要是為了防止taosnode1節點當機後無法連線叢集

# C:\TDengine中cmd啟動客戶端,輸入taos連線叢集

10、vnode的高可用

# create database testdb replica n; 建立資料庫並設定副本數,n代表幾個副本;

# n可以配置為1-3,但不能超過節點數;

# 當一個vnode group裡一半或以上的vnode不工作時,不能對外提供服務;

# 預設replica為1,此時叢集不具備vnode高可用,若想高可用,大於等於2;

11、mnode的高可用

# mnode的副本數,由系統配置引數numOfMnodes決定,有效範圍1-3,且小於等於叢集節點數;

# 當一半或以上mnode不工作時,叢集不對外工作;

# 為保證mnode的高可用性,numOfMnodes必須設定為2或3,預設為3;

12、負載均衡

# 觸發情況:下面這三種情況將自動觸發負載均衡,不須人工干預

# 1、當一個新資料節點新增進叢集時;

# 2、當一個資料節點從叢集中移除時;

# 3、一個資料節點過熱(資料量過大);

13、Arbitrator

# 為什麼要用Arbitrator:

# 如果副本數為偶數,當一個vnode  group裡一半的vnode不工作時,是無法從中選出master的。

# 同理,一個mnode組裡一半的mnode不工作時,也是無法選出mnode的master的。

# 因為存在“split brain”的問題;

# Arbitrator的作用

# Arbitrator是一個可執行程式,模擬一個vnode或mnode在工作,但只簡單的負責網路連線,不處理任何資料插入或訪問。

# 比如:對於副本數位2的情況,如果一個節點A離線,但另外一個節點B正常,如果沒有Arbitrator,那麼節點B也不能對外工作,

# 但如果能連線到Arbitrator,那麼節點B就能正常工作

相關文章