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

 

posted @ 2024-04-28 11:33  文艺流浪汉  阅读(398)  评论(0编辑  收藏  举报