一、说明
TDengine是按照分布式高可靠架构设计,支持水平扩展,能够有效保障系统的可用性和可靠性,生产环境中一般都是多节点部署,TDengine集群部署需要三个以上节点,如果只部署两个数据节点也是可行, 但需要署Arbitrator节点(为模拟节点,不处理任何数据)。
二、集群部署结构
-
部署信息
机器IP与端口:
10.16.161.186:6030
10.16.161.187:6030
10.16.161.188:6030
-
节点类型
共有三个数据节点(DNODE),两个管理节点(MNODE),这里讲解TDEngine涉及的主要节点类型:
-
数据节点(DNODE)
DNODE负责数据的存取, 包含多个逻辑的虚拟节点,或者至多一个管理节点(mnode)。
-
管理节点(MNODE)
MNODE即META NODE,是一个虚拟的逻辑单元、负责所有数据节点状态的监控与维护,以及负载均衡;另外也负责元数据(用户、数据库、表、静态标签)的存储和管理。
-
虚拟节点(VNODE)
VNODE是由数据节点所虚拟而来, 一个数据节点可以划分为多个虚拟节点,目的是为了更好的支持数据分片、负载均衡、防止数据过热或倾斜。
三、安装前配置
-
修改hosts信息
TDEngine是通过FQDN进行访问, 规划好三个节点对应的域名
10.16.161.186 taos1
10.16.161.187 taos2
10.16.161.188 taos3
将配置写入/etc/hosts文件:
10.16.161.186 taos1 10.16.161.187 taos2 10.16.161.188 taos3
验证:
root@node1:~# ping -c2 taos2 PING taos2 (10.16.161.187) 56(84) bytes of data. 64 bytes from ubuntu (10.16.161.187): icmp_seq=1 ttl=64 time=0.028 ms 64 bytes from ubuntu (10.16.161.187): icmp_seq=2 ttl=64 time=0.035 ms
-
关闭防火墙
//临时关闭 systemctl stop firewalld //永久禁止 systemctl disable firewalld
安装集群建议关闭防火墙,安装完后再配置端口, 保证端口6030 - 6042是开放的。
四、集群安装
-
下载安装包
从官网下载安装包,需要配置邮件才能获取下载链接。
-
解压安装包
[root@localhost TDengine-server-2.2.2.0] # tar -xvf TDengine-server-2.2.2.0-Linux-x64.tar.gz [root@localhost TDengine-server-2.2.2.0] # ll total 2176 drwxr-xr-x 5 root root 83 Nov 17 15:56 connector drwxr-xr-x 6 root root 62 Dec 62 16:23 data drwxr-xr-x 2 root root 51 Nov 11 15:56 driver drwxr-xr-x 10 root root 98 Nov 15:56 examples -rwxr-xr-x 1 root root 38220 Nov 15:56 install.sh drwxr-xr-x 2 root root 60 Dec 29 19:52 log -rw-r--r-- 1 root root 2184998 Nov 17 15:56 taos.tar.gz drwxr-xr-x 2 root root 6 Dec 29 16:22 tmp
-
执行安装
内置已经提供好安装脚本, 进入安装目录, 直接执行install.sh
[root@10 TDengine-server-2.2.2.0] #./install.sh osinfo:RedHat Enterprise Linux Server RedHat Enterprise Linux Server 7.6(Maipo) cpe:/o:redhat:enterprise_1inux:7.6:GA:server This is an officially unverified 1inux system, if there are any problems with the instal1ation and operation, please feel free to contact taosdata.com for support. start to install TDengine... created symlink from /etc/system d/system/multi-user.target.wants/taosd.service to /etc/systemd/system/taosd.service. system hostname is:10.16.161.186 Enter FQDN:port(like hl.taos data.com:6030) of an existing TDengine cluster node to join OR leave it blank to build one: Enter your emailaddress for priority support or enter empty to skip: To configure TDengine : edit /etc/taos/taos.cfg To start TDengine : sudo systemctl start taosd To access TDengine : taos -h 10.16.161.186 to login into TDengine server TDengine is installed successfully!
输入提示时, 直接回车即可。
提示: 如果出现错误或需重装,执行内置删除命令rmtaos
[root@10 TDengine-server-2.2.2.0]$ rmtaos TDEngine is removed successfully!
此命令并不会清除data和log目录, 建议手工清理彻底删除。(默认路径/var/log/taos、/var/lib/taos)
-
修改配置文件
配置文件路径默认在/etc/taos/taos.cfg,以下几项是必须修改的地方, 每个节点根据实际信息都需做相应地修改, 以第一个节点为例:
# firstEp 是每个数据节点首次启动后连接的第一个数据节点 firstEp taos1:6030 # 必须配置为本数据节点的FQDN,如果本机只有一个hostname, 可注释掉本项 fqdn taos1 # 配置本数据节点的端口号,缺省是6030 serverPort 6030 # 副本数为偶数的时候,需要配置,比如两台数据节点,可以在任意一台安装arbitrator节点 # arbitrator ha.taosdata.com:6042
生产集群调优参数的完整配置:
#first fully qualified domainname(FQDN) for TD engine system firstEp taos1:6030 #local fully qualified domainname(FQDN) fqdn taos1 #first port number for the connection ( 12 continuous UDP/TCP portnumber are used) serverPort 6030 #logfile'sdirectory logDir /usr/local/TDengine-server-2.2.2.0/log #datafile'sdirectory dataDir /usr/local/TDengine-server-2.2.2.0/data #temporaryfile'sdirectory tempDir /usr/local/TDengine-server-2.2.2.0/tmp #numberofthreads per CPU core numOfThreadsPerCore 2.0 #numberofthreads to commit cache data numOfCommitThreads 40 #theproportionof total CPU cores available for query processing #2.0:thequerythreads will be set to double of the CPU cores. #1.0:allCPUcores are available for query processing[default] . #0.5:onlyhalfof the CPU cores are available for query. #0.0:onlyonecore available. ratioOfQueryCores 2.0 #thelast_row/first/lastaggregator will not change the original columnname in the result fields keepColumnName 1 #numberofmanagement nodes in the system numOfMnodes 2 #enable/disableloadbalancing balance 0 #numberofseconds allowed for ad node to be offline, for cluster only offlineThreshold 86400 #maxnumberof v groups per db, 0 means configured automatically maxVgroupsPerDb 30 #numberofcache blocks per vnode blocks 60 #thenumberof acknowledgments required for successful data writing quorum 2 #max length of an SQL maxSQLLength 1048576 #system timezone timezone Asia/Shanghai(CST, +0800) #system locale locale enUS.UTF-8 # default system charset charset UTF-8 # max number of connections allowed in dnode maxShellConns 50000 # max number of connections allowed in client maxConnections 50000 # enable/disable system monitor monitor 1 wallevel 1
主要配置说明:
# 配置参数名称 含义 1 numOfMnodes 系统中管理节点个数 2 mnodeEqualVnodeNum 一个mnode等同于vnode消耗的个数 3 offlineThreshold dnode离线阈值,超过该时间将导致Dnode离线 4 statusInterval dnode向mnode报告状态时长 5 arbitrator 系统中裁决器的End Point 6 timezone 时区 7 balance 是否启动负载均衡 8 maxTablesPerVnode 每个vnode中能够创建的最大表个数 9 maxVgroupsPerDb 每个DB中能够使用的最大vgroup个数 如果指定数据、日志的存储路径,先创建好对应的文件夹:
mkdir -p /usr/local/TDengine-server-2.2.2.0/log mkdir -p /usr/local/TDengine-server-2.2.2.0/data mkdir -p /usr/local/TDengine-server-2.2.2.0/tmp
实际生产集群中,数据可能会分配到多个硬盘目录, TDEngine是能够支持多个目录的存储, 配置示例:
dataDir /data/tdengine/data1 0 1 dataDir /data/tdengine/data2 0 0 dataDir /data/tdengine/data3 0 0
-
启动服务节点
1) 确保每个节点配置修改完成后, 先启动第一个节点
sytemctl start taosd
如果命令不能识别, 说明没有成功安装, 按照上述步骤重新安装。
2) 启动其余节点按照上述命令,依次在各节点启动服务。
-
创建集群
进入主节点, 逐个加入其它节点:
CREATE DNODE "fqdn:port";
创建完成后, 通过show dnodes命令可以查看集群所有节点信息:
能够查看到三个节点的信息, 并且状态为“ready”, 代表集群搭建正常。
如果节点创建错误, 可以删除节点, 执行命令:
DROP DNODE "fqdn:port"
一旦被drop之后,不能重新加入集群。需要将此节点重新部署, 并且要清空数据文件夹。