0%

环境要求

# 检查vm.max_map_count设置,至少要求262144
grep vm.max_map_count /etc/sysctl.conf
vm.max_map_count=262144
# 在线设置
sysctl -w vm.max_map_count=262144
# ES的data目录需要设置rwx权限
chmod g+rwx /root/es/data

三台机器搭建集群

  • node1
docker run -d --name es --net host \
  -e node.name=es1 -e cluster.name=es-docker-cluster \
  -e discovery.seed_hosts=192.168.3.19,192.168.3.20 \
  -e cluster.initial_master_nodes=192.168.3.17,192.168.3.19,192.168.3.20 \
  -e network.publish_host=192.168.3.17 \
  -v /root/es/data:/usr/share/elasticsearch/data \
  elasticsearch:7.5.2
  • node2
docker run -d --name es --net host \
  -e node.name=es2 -e cluster.name=es-docker-cluster \
  -e discovery.seed_hosts=192.168.3.17,192.168.3.20 \
  -e cluster.initial_master_nodes=192.168.3.17,192.168.3.19,192.168.3.20 \
  -e network.publish_host=192.168.3.19 \
  -v /root/es/data:/usr/share/elasticsearch/data \
  elasticsearch:7.5.2 
  • node3
docker run -d --name es --net host \
  -e node.name=es3 -e cluster.name=es-docker-cluster \
  -e discovery.seed_hosts=192.168.3.17,192.168.3.19 \
  -e cluster.initial_master_nodes=192.168.3.17,192.168.3.19,192.168.3.20 \
  -e network.publish_host=192.168.3.20 \
  -v /root/es/data:/usr/share/elasticsearch/data \
  elasticsearch:7.5.2 

测试

[root@data2 es]# curl -X GET "localhost:9200/_cat/nodes?v&pretty"
ip           heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.3.17           20          98   1    0.07    0.07     0.05 dilm      *      es1
192.168.3.20           12          97   1    0.04    0.03     0.05 dilm      -      es3
192.168.3.19            9          93   1    0.01    0.04     0.05 dilm      -      es2
[root@data1 es]# curl 'localhost:9200/_cluster/health?pretty'
{
  "cluster_name" : "es-docker-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

开启数据库更新功能

-- 创建数据库时使用默认参数,数据库的update属性为0,即不允许数据的更新
CREATE DATABASE power UPDATE 1;
  • 向不支持数据更新的表中写入重复时间戳的数据,后写入的数据会被丢弃;
  • 向支持数据更新功能的表中,写入重复时间戳的数据时,老的数据会被覆盖.

创建库

-- 创建一个名为 power 的库,这个库的数据将保留 365 天(超过 365 天将被自动删除),副本数为3,每 10 天一个数据文件,内存块数为 6,允许更新数据
CREATE DATABASE power KEEP 365 REPLICA 3  DAYS 10 BLOCKS 6 UPDATE 1;
use power;

创建超级表

CREATE STABLE meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);

创建子表

CREATE TABLE d1001 USING meters TAGS ("Beijing.Chaoyang", 2);

插入数据

-- 如果该子表没有创建会自动创建
INSERT INTO d1001 USING meters TAGS ("Beijng.Chaoyang", 2) VALUES (now, 10.2, 219, 0.32);

下载服务端对应版本的客户端

windows客户端使用

  1. 安装TDengine-client-2.2.1.1-Windows-x64.exe
  2. 默认安装目录C:\TDengine
  3. 修改C:\TDengine\cfg\taos.cfgfirstEp
  4. window机器修改C:\Windows\System32\drivers\etc\hosts,添加集群节点的hostname.
  5. 桌面双击运行Taos shell,执行taos.exe进入终端.

准备工作

  • 准备3台服务器,搭建3节点集群
  • 所有节点准备RPM安装包
  • 建议关闭所有物理节点的防火墙,至少保证端口:6030 - 6042的TCP和UDP端口都是开放的
  • 每台服务器执行hostname -f,获取机器名,在各个节点都配置好/etc/hosts
  • 节点保证时区一致,时间相差不大

所有节点安装服务端(注意不要启动taosd服务)

# 安装命令
rpm -vi TDengine-server-2.2.1.1-Linux-x64.rpm
# 卸载命令
rpm -e tdengine

注意关键步骤:Enter FQDN:port (like h1.taosdata.com:6030) of an existing TDengine cluster node to join OR leave it blank to build one :

  1. 第一台节点可以一路回车,也可以输入自己的hostname:6030
  2. 之后的节点到这一步时输入第一台节点的hostname:6030

自动生成配置文件目录、数据库目录、日志目录。

  • 配置文件缺省目录:/etc/taos/taos.cfg, 软链接到/usr/local/taos/cfg/taos.cfg
  • 数据库缺省目录:/var/lib/taos, 软链接到/usr/local/taos/data
  • 日志缺省目录:/var/log/taos, 软链接到/usr/local/taos/log
  • /usr/local/taos/bin目录下的可执行文件,会软链接到/usr/bin目录下;
  • /usr/local/taos/driver目录下的动态库文件,会软链接到/usr/lib目录下;
  • /usr/local/taos/include目录下的头文件,会软链接到到/usr/include目录下;

修改TDengine的配置文件(所有节点的文件/etc/taos/taos.cfg都需要修改)

// firstEp 是每个数据节点首次启动后连接的第一个数据节点
firstEp               h1.taosdata.com:6030
// 必须配置为本数据节点的FQDN,如果本机只有一个hostname, 可注释掉本项
fqdn                  h1.taosdata.com  
// 配置本数据节点的端口号,缺省是6030
serverPort            6030
// 副本数为偶数的时候,需要配置,请参考《Arbitrator的使用》的部分
arbitrator            ha.taosdata.com:6042

注意:一定要修改的参数是firstEpfqdn。在每个数据节点,firstEp需全部配置成一样,但fqdn一定要配置成其所在数据节点的值。

启动集群

# 启动服务命令
systemctl start taosd
systemctl status taosd
  1. 在第一台节点执行taos命令进入控制台:
[root@data1 tdengine]# taos
Welcome to the TDengine shell from Linux, Client Version:2.2.1.1
Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.
-- 查看节点列表
taos> show dnodes;
   id   |           end_point            | vnodes | cores  |   status   | role  |       create_time       |      offline reason      |
======================================================================================================================================
      1 | data1:6030                     |      1 |      4 | ready      | any   | 2021-10-29 09:50:55.154 |                          |
Query OK, 1 row(s) in set (0.000985s)
  1. 启动第二、三台节点的服务

  2. 在第一台节点控制台执行加入节点的命令

-- 加入节点2
taos> create dnode "data2:6030";
Query OK, 0 of 0 row(s) in database (0.000578s)
-- 加入节点3
taos> create dnode "data2:6030";
Query OK, 0 of 0 row(s) in database (0.000578s)
-- 查看节点列表
taos> show dnodes;
   id   |           end_point            | vnodes | cores  |   status   | role  |       create_time       |      offline reason      |
======================================================================================================================================
      1 | data1:6030                     |      1 |      4 | ready      | any   | 2021-10-29 09:50:55.154 |                          |
      2 | data2:6030                     |      1 |      4 | ready      | any   | 2021-10-29 09:52:37.821 |                          |
      3 | data3:6030                     |      0 |      4 | ready      | any   | 2021-10-29 09:52:58.892 |                          |