TDengine 集羣 多機器docker 部署

參考  

 

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就能正常工作

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章