1、环境规划

主机名IP地址部署服务
tdsql21510.1.1.215zookeeper、db、kafka、mc
tdsql21610.1.1.216zookeeper、scheduler、oss、chitu、monitor、db、proxy、lvs、kafka、mc
tdsql21710.1.1.217zookeeper、scheduler、oss、chitu、monitor、db、proxy、lvs、kafka、mc
tdsql21810.1.1.218hdfs、consumer、es

2、环境初始化

2.1 设置主机名

# 每台主机分别设置主机名
hostnamectl set-hostname tdsql215
hostnamectl set-hostname tdsql216
hostnamectl set-hostname tdsql217
hostnamectl set-hostname tdsql218

2.2 添加主机名IP映射

# 每台主机都执行
vim /etc/hosts
10.1.1.215 tdsql215
10.1.1.216 tdsql216
10.1.1.217 tdsql217
10.1.1.218 tdsql218

2.3 开启时间同步

安装ntp软件包

# 所有主机都要安装
yum -y install ntp

配置时间同步服务主机,tdsql215为时间同步服务器主机,其它主机从tdsql215同步时间

# tdsql215主机添加配置
vim /etc/ntp.conf
server 127.127.1.0 iburst
 
systemctl restart ntpd.service

其他主机配置时间同步

# 剩余三台主机都执行
vim /etc/ntp.conf
server 10.1.1.215
restrict 10.1.1.215 mask 255.255.255.0 nomodify notrap
 
systemctl restart ntpd.service

2.4 规划存储目录

# 所有主机执行
mkdir -p /data
mkdir -p /data1

2.5 tdsql介质下载

在ftp的/software/databases/TDSQL-MySQL/10.3.22.3.0/tdsql_10.3.22.3.0_BACKUPDEV.x86_64.zip

2.6 免密配置

免密登录主要是安装的时候脚本自动连接从机安装需要的组件

#以下指令都在tdsql218主机上执行 这里直接回撤就行不需要设置
ssh-keygen -t rsa

#这里需要输入从机1的密码
ssh-copy-id 10.1.1.215
#这里需要输入从机2的密码
ssh-copy-id 10.1.1.216
#这里需要输入从机3的密码
ssh-copy-id 10.1.1.217

2.7 关闭防火墙

注意一定要关闭防火墙 要不然无法连接到从机

#(关闭防火墙)
systemctl stop firewalld.service
#(关闭防火墙自动启动)
systemctl disable firewalld.service
#查看防火墙状态:
systemctl status firewalld.service

3、tdsql安装部署

3.1 修改 tdsql_hosts文件

避免中文乱码,首先执行

export LANG='en_US.UTF-8'

文件在./tdsql_10.3.22.3.0_BACKUPDEV/tdsql_install/tdsql_hosts下面

[root@tdsql218 tdsql_install]# cat tdsql_hosts 
# 填入所有机器的地址(包括主控机)
# 用于环境检测和初始化配置
# 同一个标签组内的ip地址不要重复,一个ip一行
# 序号从1递增,比如只有2台机器,那么序号保留tdsql_mac1 tdsql_mac2
# 后续如果有扩容,新扩容的机器也需要在这里补上
[tdsql_allmacforcheck]
tdsql_mac1 ansible_ssh_host=10.1.1.215
tdsql_mac2 ansible_ssh_host=10.1.1.216
tdsql_mac3 ansible_ssh_host=10.1.1.217
tdsql_mac4 ansible_ssh_host=10.1.1.218


# zookeeper机器ip地址
# 数量只能是1、3、5, 正式环境建议3台或者5台
# 如果是使用自己已有的zk集群,这里同样要填写正确的zk地址
[tdsql_zk]
tdsql_zk1 ansible_ssh_host=10.1.1.215
tdsql_zk2 ansible_ssh_host=10.1.1.216
tdsql_zk3 ansible_ssh_host=10.1.1.217


# scheduler机器的ip地址,正式环境建议2个
[tdsql_scheduler]
tdsql_scheduler1 ansible_ssh_host=10.1.1.216
tdsql_scheduler2 ansible_ssh_host=10.1.1.217


# oss机器的ip地址, 正式环境建议2个
[tdsql_oss]
tdsql_oss1 ansible_ssh_host=10.1.1.216
tdsql_oss2 ansible_ssh_host=10.1.1.217


# 赤兔机器的ip地址, 正式环境建议2个
[tdsql_chitu]
tdsql_chitu1 ansible_ssh_host=10.1.1.216
tdsql_chitu2 ansible_ssh_host=10.1.1.217

# 新赤兔机器的ip地址, 正式环境建议2个
[tdsql_V3chitu]
tdsql_V3chitu1 ansible_ssh_host=1.1.1.1

# 监控采集模块的IP地址,正式环境建议2个
[tdsql_monitor]
tdsql_monitor1 ansible_ssh_host=10.1.1.216
tdsql_monitor2 ansible_ssh_host=10.1.1.217


# db机器地址
# 有多少台就填多少个ip地址
# 注意tdsql_db序号逐个递增,不要跳跃
[tdsql_db]
tdsql_db1 ansible_ssh_host=10.1.1.215
tdsql_db2 ansible_ssh_host=10.1.1.216
tdsql_db3 ansible_ssh_host=10.1.1.217


# proxy机器地址
[tdsql_proxy]
tdsql_proxy1 ansible_ssh_host=10.1.1.216
tdsql_proxy2 ansible_ssh_host=10.1.1.217


# hdfs机器地址
# 机器数量只能是1台或者3台
# 如果单节点部署,则只保留tdsql_hdfs1,其他删除
# 正式环境建议高可用部署,初始安装数量只能3台
[tdsql_hdfs]
tdsql_hdfs1 ansible_ssh_host=10.1.1.218


# lvs机器地址,数量固定2台
[tdsql_lvs]
tdsql_lvs1 ansible_ssh_host=10.1.1.216
tdsql_lvs2 ansible_ssh_host=10.1.1.217


# kafka机器地址,数量固定3台
[tdsql_kafka]
tdsql_kafka1 ansible_ssh_host=10.1.1.215
tdsql_kafka2 ansible_ssh_host=10.1.1.216
tdsql_kafka3 ansible_ssh_host=10.1.1.217


# 多源同步消费者服务ip地址
[tdsql_consumer]
tdsql_consumer1 ansible_ssh_host=10.1.1.218


# es机器地址
[tdsql_es]
tdsql_es1 ansible_ssh_host=10.1.1.218


[tdsql_mc]
tdsql_mc1 ansible_ssh_host=10.1.1.215
tdsql_mc2 ansible_ssh_host=10.1.1.216
tdsql_mc3 ansible_ssh_host=10.1.1.217




[tdsql_newdb]
tdsql_newdb1 ansible_ssh_host=1.1.1.1
tdsql_newdb2 ansible_ssh_host=2.2.2.2
tdsql_newdb3 ansible_ssh_host=3.3.3.3

 
[tdsql_ansible_test]
tdsql_ansible_test1 ansible_ssh_host=1.1.1.1
tdsql_ansible_test2 ansible_ssh_host=2.2.2.2
tdsql_ansible_test3 ansible_ssh_host=3.3.3.3
[root@tdsql218 tdsql_install]# 

3.2 修改group_vars配置(ansible变量)

文件在./tdsql_10.3.22.3.0_BACKUPDEV/tdsql_install/group_vars/all下面

[root@tdsql218 group_vars]# cat all
---
# 操作系统账号tdsql的明文密码
# 如果有规划要部署两个集群做DCN同步, 则这两个集群的tdsql密码要一致
tdsql_os_pass: a+complex+password

# tdsql用户所属的组,仅支持配置tdsql、users
tdsql_group: users

# tdsql在zk上的根路径, 保持默认不允许修改
tdsql_zk_rootdir: /tdsqlzk

# zk机器的域名配置, 会写入各配置文件, 并将域名配置到/etc/hosts中
# 正式环境必须用机房或者地区的关键字, 有意义的关键字来命名
# 如果部署多套TDSQL集群, 则名字需要唯一
# 例如: 深圳机房zk的域名可以定义为tdsql_sz_zk
tdsql_zk_domain_name: tdsql_test_zk

# zk端口配置, 保持默认不要改,如果是自建的zk, 则和已有zk端口保持一致
tdsql_zk_clientport: 2118
tdsql_zk_serverport1: 2338
tdsql_zk_serverport2: 2558

# zk的ACL级别, 支持WEAK和STRONG
# WEAK模式下访问zk数据无需鉴权,STRONG模式下访问需要鉴权
# 该配置为19.3版本引入, 在此之前的版本中是固定用WEAK
tdsql_zk_acl: WEAK

# 赤兔监控库配置, 赤兔初始化完成后需要将监控库信息在这里更新
# 下面信息需要时修改,注意不能配置空值
# 监控库账号密码不能特殊字符开头,不能含有中文、引号、反斜杠、空格等特殊字符
tdsql_metadb_ip: 10.1.1.215
tdsql_metadb_port: 15002
tdsql_metadb_ip_bak: 10.1.1.216
tdsql_metadb_port_bak: 15002
tdsql_metadb_user: tdsqlpcloud
tdsql_metadb_password: 123456


# hdfs机器的ssh端口
tdsql_hdfs_ssh: 22

# hdfs数据目录, 正式环境要求mount挂载比较大的数据盘
tdsql_hdfs_datadir: /data2/hdfs,/data3/hdfs,/data4/hdfs


# kafka日志目录,正式环境要求mount挂载比较大的数据盘
tdsql_kafka_logdir: /data2/kafka,/data3/kafka,/data4/kafka


# es7配置
tdsql_es7_mem: 4
tdsql_es7_base_path: /data1/es
tdsql_helper_cluster_name: tdsql


# 资源分配模式,仅支持fixed和comb配置
# 迭代19版本开始默认使用comb自由分配
tdsql_res_mngr: comb

update_tdsqlinstall_packet: mysqlagent

3.3 安装ansible(tdsql218)

在主控机上安装ansible

cd /root/tdsql_10.3.22.3.0_BACKUPDEV/tdsql_install/scripts
source environment_set
sh install_ansible.sh

验证ansible安装是否成功

[root@tdsql218 scripts]# ansible --version
ansible 2.9.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/site-packages/ansible-2.9.6-py3.8.egg/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.2 (default, Jun 24 2023, 17:43:28) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
[root@tdsql218 scripts]# 

3.4 安装ZooKeeper

[root@tdsql218 ~]# cd /root/tdsql_10.3.22.3.0_BACKUPDEV/tdsql_install
[root@tdsql218 tdsql_install]# ansible-playbook -i tdsql_hosts playbooks/tdsql_part1_site.yml

等待安装,最后执行到没有错误那就是安装成功了

# 执行了近20多分钟 ,执行完成要无failed=0
PLAY RECAP ********************************************************************************************************************************************************
chitu1                     : ok=20   changed=19   unreachable=0    failed=0
chitu2                     : ok=20   changed=19   unreachable=0    failed=0
db1                        : ok=13   changed=12   unreachable=0    failed=0
db2                        : ok=13   changed=12   unreachable=0    failed=0
db3                        : ok=13   changed=12   unreachable=0    failed=0
huyidb01                   : ok=30   changed=19   unreachable=0    failed=0
huyidb02                   : ok=27   changed=16   unreachable=0    failed=0
huyidb03                   : ok=27   changed=16   unreachable=0    failed=0
huyidb04                   : ok=27   changed=17   unreachable=0    failed=0
oss1                       : ok=14   changed=11   unreachable=0    failed=0
oss2                       : ok=14   changed=11   unreachable=0    failed=0
proxy1                     : ok=13   changed=10   unreachable=0    failed=0
proxy2                     : ok=13   changed=10   unreachable=0    failed=0
proxy3                     : ok=13   changed=10   unreachable=0    failed=0
scheduler1                 : ok=25   changed=23   unreachable=0    failed=0
scheduler2                 : ok=22   changed=20   unreachable=0    failed=0
zk1                        : ok=19   changed=17   unreachable=0    failed=0
zk2                        : ok=19   changed=17   unreachable=0    failed=0
zk3                        : ok=19   changed=17   unreachable=0    failed=0

3.5 初始化赤兔平台

网页访问安装chitu模块的机器地址,初始化chitu。http://10.1.1.216/tdsqlpcloud

在左下方我已完整阅读,并接受许可协议处打勾,完成后点击下一步。

许可协议.png

环境检测

环境检测.png

集群配置

第一步:集群命名,这个名称是全局唯一的,这里我命名为testcluster

第二步:配置OSS服务列表,前面配置了几个OSS节点,这里就填几个,格式如提示那样“IP:PORT”形式

第三步:测试OSS服务连接,点击旁边的“测试服务连接”按钮,zookeeper列表会自动显示,zookeeper节点目录也会自动显示

第四步:检查集群信息,点击“测试服务连接”后,集群信息也是自动显示,这里检查一下

第五步:点击下一步

集群配置.png

集群初始化

接下来对每一项内容初始化

集群初始化.png

新增IDC配置

命名规则可以这样定义:城市+机房+房间号+机架号

IDC是策略上的配置,要对应到实际的机架信息上。比如有2个DB机器,为了保证DB实例跨机架,新增2个IDC

IDC权重:IDC权重皆使用默认值100

IDC.png

新增DB机型

机型:TS80,根据实际情况设定。(机型的名字要全部大写)
CPU、内存和磁盘:设置机型的时候要依据实际的机器配置
CPU:设置为实际机器一致
内存:设置为实际机器的75%
磁盘:设置为实际机器的90%
磁盘包括:数据盘和日志盘,比例为3:1
目录结构
数据目录:/data1/tdengine/data
日志目录:/data1/tdengine/log
安装包目录:/data/home/tdsql/tdsqlinstall
数据库安装目录:/data/tdsql_run
预留资源百分比:固定不变

DB_TS80.png

新增网关机型

网关机型已经自动创建好,不需要手动创建,请勿修改!!!

PROXY.png

上报DB资源

IP:填写实际的DB机器的通信ip地址

机型:选择刚才创建的机型,如TS80

IDC:根据实际情况,选择其归属于哪一个IDC(不同DB机器要划分到不同IDC中)

fenceid、frame、zone:默认

设备资源.png

上报网关资源

IP:填写实际的PROXY机器的通信ip地址

IDC:同一网关组内的网关可以划分在不同的IDC中,或者相同的IDC中

网关资源.png

新增组件

因为之前上报了2台proxy机器,且这2台proxy机器划分在不同的IDC中,所以这里选择“从2个IDC中取2台机器”

网关组.png

创建实例

创建一个监控库实例

基础设置如下

创建实例.png

容灾设置如下

因为之前设置的是两个DB,这里选择“一主一备”,新增IDC分布,依据之前设置的IDC分布,如果设置的是一个IDC,则关闭IDC校验

实例初始化.png

实例创建完成,选择“初始化”

初始化实例.png

配置数据库

配置数据库.png

授权许可文件

跳过授权即可

授权许可.png

然后完成安装 进入http://10.1.1.216/tdsqlpcloud
登录运营管理平台: 帐号密码 admin/123456

3.6 监控实例的proxy ip地址

安装完赤兔后,获取到赤兔的监控实例的proxy ip地址,放到ansible的配置文件。

[root@tdsql218 tdsql_install]# cat group_vars/all
---
# 操作系统账号tdsql的明文密码
# 如果有规划要部署两个集群做DCN同步, 则这两个集群的tdsql密码要一致
tdsql_os_pass: a+complex+password

# tdsql用户所属的组,仅支持配置tdsql、users
tdsql_group: users

# tdsql在zk上的根路径, 保持默认不允许修改
tdsql_zk_rootdir: /tdsqlzk

# zk机器的域名配置, 会写入各配置文件, 并将域名配置到/etc/hosts中
# 正式环境必须用机房或者地区的关键字, 有意义的关键字来命名
# 如果部署多套TDSQL集群, 则名字需要唯一
# 例如: 深圳机房zk的域名可以定义为tdsql_sz_zk
tdsql_zk_domain_name: tdsql_test_zk

# zk端口配置, 保持默认不要改,如果是自建的zk, 则和已有zk端口保持一致
tdsql_zk_clientport: 2118
tdsql_zk_serverport1: 2338
tdsql_zk_serverport2: 2558

# zk的ACL级别, 支持WEAK和STRONG
# WEAK模式下访问zk数据无需鉴权,STRONG模式下访问需要鉴权
# 该配置为19.3版本引入, 在此之前的版本中是固定用WEAK
tdsql_zk_acl: WEAK

# 赤兔监控库配置, 赤兔初始化完成后需要将监控库信息在这里更新
# 下面信息需要时修改,注意不能配置空值
# 监控库账号密码不能特殊字符开头,不能含有中文、引号、反斜杠、空格等特殊字符
tdsql_metadb_ip: 10.1.1.215
tdsql_metadb_port: 15002
tdsql_metadb_ip_bak: 10.1.1.216
tdsql_metadb_port_bak: 15002
tdsql_metadb_user: tdsqlpcloud
tdsql_metadb_password: 123456


# hdfs机器的ssh端口
tdsql_hdfs_ssh: 22

# hdfs数据目录, 正式环境要求mount挂载比较大的数据盘
tdsql_hdfs_datadir: /data2/hdfs,/data3/hdfs,/data4/hdfs


# kafka日志目录,正式环境要求mount挂载比较大的数据盘
tdsql_kafka_logdir: /data2/kafka,/data3/kafka,/data4/kafka


# es7配置
tdsql_es7_mem: 4
tdsql_es7_base_path: /data1/es
tdsql_helper_cluster_name: tdsql


# 资源分配模式,仅支持fixed和comb配置
# 迭代19版本开始默认使用comb自由分配
tdsql_res_mngr: comb

update_tdsqlinstall_packet: mysqlagent
执行安装 part2_site.yml
cd /tdsql/tdsql_install
ansible-playbook -i tdsql_hosts playbooks/tdsql_part2_site.yml

3.7 其它组件安装

3.7.1 HDFS安装

1.在dfs 机器上设置主机名

vim /etc/hosts
172.21.0.15 tdsql218

2.检查 tdsql_hosts 文件

vim tdsql_hosts
[hdfs]
hdfs1 ansible_ssh_host=10.1.1.218
本实验hdfs采用伪分布式安装,只在tdsql218一台机器上安装hdfs。

3.修改 hdfs 变量

vim /tdsql/tdsql_install/group_vars/all
tdsql_hdfs_num: 1
tdsql_hdfs_ssh: 22
tdsql_hdfs_datadir: /data2/hdfs,/data3/hdfs,/data4/hdfs
tdsql_hdfsdatadir_count: 3

4.hdfs目录及权限

[root@tdsql218 tdsql_install]# mkdir -p /data2/hdfs
[root@tdsql218 tdsql_install]# mkdir -p /data3/hdfs
[root@tdsql218 tdsql_install]# mkdir -p /data4/hdfs
[root@tdsql218 tdsql_install]# chown -R tdsql:users /data2
[root@tdsql218 tdsql_install]# chown -R tdsql:users /data3
[root@tdsql218 tdsql_install]# chown -R tdsql:users /data4

5.安装 hdfs 单点

[root@tdsql4 tdsql_install]# cd /root/tdsql_10.3.22.3.0_BACKUPDEV/tdsql_install
[root@tdsql4 tdsql_install]# ansible-playbook -i tdsql_hosts playbooks/tdsql_hdfs.yml

6.切换到 tdsql 用户

[root@tdsql218 tdsql_install]# su - tdsql

7.用 tdsql 用户在 hdfs1 机器上,格式化 namenode

[tdsql@tdsql218 ~]$ hdfs namenode -format

8.用 tdsql 用户在 hdfs1 机器上,启动 namenode 和 datanode

[tdsql@tdsql218 ~]$ hdfs --daemon start namenode
[tdsql@tdsql218 ~]$ hdfs --daemon start datanode

/*
附:用 tdsql 用户关闭 hdfs 进程
hdfs --daemon stop datanode
hdfs --daemon stop namenode
*/

9.用 tdsql 用户执行以下命令

#查看/tdsqlbackup 目录是否已经被自动创建,权限是否如下
[tdsql@tdsql218 ~]$ hadoop fs -ls /tdsqlbackup

#如果目录不在或者权限不对,用下面命令修改:
[tdsql@tdsql218 ~]$ hadoop fs -mkdir /tdsqlbackup
[tdsql@tdsql218 ~]$ hadoop fs -chown tdsql.supergroup /tdsqlbackup

#查看所有datanode节点状态,及上报的容量情况
[tdsql@tdsql218 ~]$ hdfs dfsadmin -report