三分钟梳理TDengine安装部署的逻辑

小 T 导读:TDengine,是涛思数据面对高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品,除却读写性能、存储压缩能力强大之外,还有安装简单、操作难度低等优势。今天我们就从常见的使用方式开始,给大家梳理一下TDengine的安装配置过程。

目前,TDengine Database服务端仅支持Linux X64系统,推荐CentOS 7.9 和 Ubuntu 18.04。硬件平台支持X64和arm64。 客户端支持Windows X64、Linux X64。mac版仍在开发中,未来将提供有限功能,用于开发环境。

下面,我们来分别从四种使用模式的角度探讨一下TDengine Database的安装部署。

1.本地使用单机版TDengine

第一步:下载安装包:https://www.taosdata.com/all-downloads/,一键式安装:https://www.taosdata.com/all-downloads/

第二步:安装成功后,使用 systemctl start taosd命令来启动 TDengine 的服务进程。接下来使用systemctl status taosd命令检查服务是否正常工作。

现在,你就可以通过 TDengine 的命令行程序 taos 来访问并体验 TDengine了。

2.远程客户端连接使用单机版TDengine

第一步,分别下载安装客户端和服务端(请确保客户端和服务端版本号保持一致):https://www.taosdata.com/all-downloads/,安装:https://www.taosdata.com/all-downloads/

第二步,在服务端的/etc/taos/taos.cfg文件中配置正确的fqdn参数(请避免使用localhost等容易本身就在客户端机器hosts文件中存在的名字),在客户端的hosts文件(或dns服务中)配置这个参数值以及对应的正确ip。

第三步,打开6030-6040的TCP+UDP端口以及6041,6042的TCP端口。

最后, 使用systemctl start taosd + systemctl status taosd命令确保服务正常启动后,在客户端使用taos -h fqdn(或者ip)直接连上服务端正常使用。

可以看出,和本机试跑TDengine相比起来,TDengine服务端与客户端分离的情况下多出了两个步骤。本着知其然知其所以然的精神,强烈建议大家了解一下下文中TDengine在安装部署模块的设计。

上述两种环境的配置差异可以简单归纳为这个逻辑:

即在网络环境正常的大前提下,可以干扰到TDengine客户端连接的只有上面这两种因素——1.端口配置;2.FQDN机制。

我们先来说端口配置规则:

TDengine要求数据库服务端服务器至少要保证端口:6030 – 6042的TCP和UDP端口都是开放的,其各个端口的用途如下:

TDengine 时序数据库 - 三分钟梳理TDengine安装部署的逻辑 image2021 7 26 2 2 8

可以看到,6030-6034端口负责客户端和服务端的通信。而6035-6040端口存在多节点集群之间的通讯和数据同步。

但是,为了覆盖单机和集群两种场景,我们要求大家开放6030-6040的TCP+UDP端口以及6041,6042的TCP端口。而为了最大幅度降低意外情况的发生,我们强烈建议先关闭防火墙,等环境搭建完毕之后,再来配置端口。

由于在单机试用TDengine的情况下是没有防火墙参与的,所以我们才会不需要配置TDengine端口开放规则。

第二个因素则是FQDN:

FQDN的全称是Fully Qualified Domain Name。与域名相对,我们暂且翻译成全域名比较好理解一点。

由于上一期文章的铺垫,关于TDengine的FQDN相关原理和配置问题可以直接通过该篇文章来获取—— 如何彻底搞懂TDengine的fqdn概念?这一篇文章就够了

正因为默认的fqdn参数值是本机的hostname,所以,在单机试用情况下,用户才可以无需任何配置直接使用客户端访问TDengine。

3.远程客户端连接使用集群版TDengine

首先我们需要搭建一个可用的集群,这个环节请大家严格根据《TDengine集群安装、管理》的指导进行操作,可确保万无一失。

最后,在集群搭建完毕后,一定要确保客户端的hosts文件中添加了所有的集群节点的ip和fqdn参数值,确保它可以正确解析每个节点的ip。这样客户端就可以顺利地访问并使用TDengine的集群了。

4.最后,我们梳理一下连接器的使用

TDengine提供了丰富的应用程序开发接口,其中包括C/C++、Java、Python、Go、Node.js、C# 、Rust、RESTful 等,便于用户快速开发应用。对于他们来说,各种连接器能否顺利访问并使用TDengine才是他们最关注的问题。

官方文档上说:“当在另一台服务器使用连接器(除RESTful外)访问 TDengine 数据库的时候,我们需要安装与服务端相同版本号的客户端来使应用驱动(Linux系统中文件名为libtaos.so,Windows系统中为taos.dll)被安装在系统中。否则,在连接时就会产生“无法找到相应库文件”的错误。”

因此,大家一定不要忽略这一点——客户端正常访问并使用TDengine才是你的应用可以顺利使用TDengine的前提。

有些不熟悉的用户在安装完客户端就以为万事大吉,然后就去弄应用的连接配置了。有的用户则是使用taos连接命令看一下,又用一下”show databases”之类的命令发现没问题,就去弄应用的连接配置了。以上这两种都是不严谨的,在测试中一定要确保select以及insert操作的顺利返回预期结果,如:

create table test (ts timestamp, value int );
insert into test values (now,1);
select * from test;

如果验证没有成功,请返回前文根据描述继续排查。如果仍然无效,请通过微信技术交流群,或者github上联系我们,我们会尽最大的努力帮助大家。衷心希望大家能对TDengine有一个清晰的入门理解,毕竟好的开始是成功的一半。

验证成功后,有应用程序使用需求的用户就可以移步到官方文档《TDengine连接器》,根据需要找到相应连接器的正确配置方式。