1、环境规划
主机名 | IP地址 | 部署服务 |
---|---|---|
tdsql215 | 10.1.1.215 | zookeeper、db、kafka、mc |
tdsql216 | 10.1.1.216 | zookeeper、scheduler、oss、chitu、monitor、db、proxy、lvs、kafka、mc |
tdsql217 | 10.1.1.217 | zookeeper、scheduler、oss、chitu、monitor、db、proxy、lvs、kafka、mc |
tdsql218 | 10.1.1.218 | hdfs、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
在左下方我已完整阅读,并接受许可协议处打勾,完成后点击下一步。
环境检测
集群配置
第一步:集群命名,这个名称是全局唯一的,这里我命名为testcluster
第二步:配置OSS服务列表,前面配置了几个OSS节点,这里就填几个,格式如提示那样“IP:PORT”形式
第三步:测试OSS服务连接,点击旁边的“测试服务连接”按钮,zookeeper列表会自动显示,zookeeper节点目录也会自动显示
第四步:检查集群信息,点击“测试服务连接”后,集群信息也是自动显示,这里检查一下
第五步:点击下一步
集群初始化
接下来对每一项内容初始化
新增IDC配置
命名规则可以这样定义:城市+机房+房间号+机架号
IDC是策略上的配置,要对应到实际的机架信息上。比如有2个DB机器,为了保证DB实例跨机架,新增2个IDC
IDC权重:IDC权重皆使用默认值100
新增DB机型
机型:TS80,根据实际情况设定。(机型的名字要全部大写)
CPU、内存和磁盘:设置机型的时候要依据实际的机器配置
CPU:设置为实际机器一致
内存:设置为实际机器的75%
磁盘:设置为实际机器的90%
磁盘包括:数据盘和日志盘,比例为3:1
目录结构
数据目录:/data1/tdengine/data
日志目录:/data1/tdengine/log
安装包目录:/data/home/tdsql/tdsqlinstall
数据库安装目录:/data/tdsql_run
预留资源百分比:固定不变
新增网关机型
网关机型已经自动创建好,不需要手动创建,请勿修改!!!
上报DB资源
IP:填写实际的DB机器的通信ip地址
机型:选择刚才创建的机型,如TS80
IDC:根据实际情况,选择其归属于哪一个IDC(不同DB机器要划分到不同IDC中)
fenceid、frame、zone:默认
上报网关资源
IP:填写实际的PROXY机器的通信ip地址
IDC:同一网关组内的网关可以划分在不同的IDC中,或者相同的IDC中
新增组件
因为之前上报了2台proxy机器,且这2台proxy机器划分在不同的IDC中,所以这里选择“从2个IDC中取2台机器”
创建实例
创建一个监控库实例
基础设置如下
容灾设置如下
因为之前设置的是两个DB,这里选择“一主一备”,新增IDC分布,依据之前设置的IDC分布,如果设置的是一个IDC,则关闭IDC校验
实例创建完成,选择“初始化”
配置数据库
授权许可文件
跳过授权即可
然后完成安装 进入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
叼茂SEO.bfbikes.com