
点击上方蓝字关注我们吧
崔鹏
中国首批PGCM大师,PostgreSQL官方认证讲师 ,拥有PostgreSQL数据库管理高级工程师(PGCM)、MySQL 5.7/8.0 OCP、Oracle 11g OCM等证书。
创建四台云主机或者本地四台Centos7.6的VM虚拟机

(四台云主机)
1、环境规划
主机名称 | IP地址 (公网/内网) | 部署服务 |
tdsql1 | 82.156.173.237 172.21.0.5 | zk1,kafka1,proxy1,db1 |
tdsql2 | 82.156.174.245 172.21.0.6 | zk2,kafka2,proxy2,db2,oss1,scheduler1,chitu1,monitor1,lvs |
tdsql3 | 82.157.61.93 172.21.0.13 | zk3,kafka3,proxy3,db3,oss2,scheduler2,chitu2,monitor2,lvs |
tdsql4 | 82.156.165.88 172.21.0.15 | ansible,hdfs,es,consumer |
2、安装部署
2.1 设置主机名
分别在四台机器上执行。
hostnamectl set-hostname tdsql1hostnamectl set-hostname tdsql2hostnamectl set-hostname tdsql3hostnamectl set-hostname tdsql4
2.2 设置主机名
vim etc/hosts172.21.0.5 tdsql1172.21.0.6 tdsql2172.21.0.13 tdsql3172.21.0.15 tdsql4
2.3 设置NTP时间同步
以tdsql1为主时钟服务器,tdsql2,tdsql3,tdsql4向tdsql1做时间校准[root@tdsql1 ~]# vim etc/ntp.confserver 127.127.1.0 iburst

[root@tdsql1 ~]# systemctl restart ntpd.service #重启时钟同步服务
2.4 配置tdsql2 3 4时钟同步
[root@tdsql2 ~]# vim etc/ntp.confserver 172.21.0.5restrict 172.21.0.5 mask255.255.255.0 nomodify notrap[root@tdsql3 ~]# vim etc/ntp.confserver 172.21.0.5restrict 172.21.0.5 mask255.255.255.0 nomodify notrap[root@tdsql4 ~]# vim etc/ntp.confserver 172.21.0.5restrict 172.21.0.5 mask255.255.255.0 nomodify notrap

systemctl restart ntpd.service #在tdsql2 3 4主机上重启NTP服务。ntpdate -u 172.21.0.5 #在tdsql2 3 4主机上同步一次tdsql1主机时间。
2.5 配置免密登录
(管理机 172.21.0.15 tdsql4上操作)
ssh-keygen -t rsassh-copy-id 172.21.0.5ssh-copy-id 172.21.0.6ssh-copy-id 172.21.0.13ssh-copy-id 172.21.0.15

在tdsql4上执行验证是否成功配置了免密登录。
ssh tdsql1ssh tdsql2ssh tdsql3ssh tdsql4
2.6 准备数据目录路径
(所有机器 tdsql1 tdsql2 tdsql3 tdsql4)
mkdir -p datamkdir -p data1
2.7 上传/下载ansible/tdsql安装包
下载到tdsql4管理主机上
[root@tdsql4 ~]# mkdir tdsql[root@tdsql4 ~]# cd tdsqlwget https://tencent-cloud-product-release-1234567.cos.ap-guangzhou.myqcloud.com/TDSQL-release/V10.3.14.6.0%20D014/ansible_tdsql_install_20200623.zipwget https://tencent-cloud-product-release-1234567.cos.ap-guangzhou.myqcloud.com/TDSQL-release/V10.3.14.6.0%20D014/tdsql_packet_10.3.14.6.0_x86_D014.zip
2.8 初始化机器环境
[root@tdsql4 tdsql]# cd tdsql/[root@tdsql4 tdsql]# unzip ansible_tdsql_install_20200623.zip[root@tdsql4 tdsql]# cd ansible_install/script/
2.8.1 安装yum源
[root@tdsql4 tdsql]# sh init_os_for_yum_install.sh
2.8.2 安装python3
[root@tdsql4 tdsql]# sh install_python3_for_x86.sh[root@tdsql4 tdsql]# source /etc/profile[root@tdsql4 tdsql]# python3 --version
2.8.3 安装ansible
[root@tdsql4 tdsql]# sh install_ansible.sh
2.8.4 解压tdsql安装包
[root@tdsql4 tdsql]# cd /tdsql[root@tdsql4 tdsql]# unzip tdsql_packet_10.3.14.6.0_x86_D014.zip
2.9 修改 tdsql_hosts配置文件
[root@tdsql4 tdsql]# mv tdsql/tdsql_install/tdsql_hosts tdsql/tdsql_install/tdsql_hosts.bak #备份配置文件。[root@tdsql4 tdsql]# vim tdsql/tdsql_install/tdsql_hosts #重新创建配置文件。
==================复制内容===================
[tdsql_allmacforcheck]tdsql_tdsql1 ansible_ssh_host=172.21.0.5tdsql_tdsql2 ansible_ssh_host=172.21.0.6tdsql_tdsql3 ansible_ssh_host=172.21.0.13tdsql_tdsql4 ansible_ssh_host=172.21.0.15[tdsql_zk]tdsql_zk1 ansible_ssh_host=172.21.0.5tdsql_zk2 ansible_ssh_host=172.21.0.6tdsql_zk3 ansible_ssh_host=172.21.0.13[tdsql_scheduler]tdsql_scheduler1 ansible_ssh_host=172.21.0.6tdsql_scheduler2 ansible_ssh_host=172.21.0.13[tdsql_oss]tdsql_oss1 ansible_ssh_host=172.21.0.6tdsql_oss2 ansible_ssh_host=172.21.0.13[tdsql_chitu]tdsql_chitu1 ansible_ssh_host=172.21.0.6tdsql_chitu2 ansible_ssh_host=172.21.0.13[tdsql_monitor]tdsql_monitor1 ansible_ssh_host=172.21.0.6tdsql_monitor2 ansible_ssh_host=172.21.0.13[tdsql_db]tdsql_db1 ansible_ssh_host=172.21.0.5tdsql_db2 ansible_ssh_host=172.21.0.6tdsql_db3 ansible_ssh_host=172.21.0.13[tdsql_proxy]tdsql_proxy1 ansible_ssh_host=172.21.0.5tdsql_proxy2 ansible_ssh_host=172.21.0.6tdsql_proxy3 ansible_ssh_host=172.21.0.13[tdsql_hdfs]tdsql_hdfs1 ansible_ssh_host=172.21.0.15[tdsql_lvs]tdsql_lvs1 ansible_ssh_host=172.21.0.6tdsql_lvs2 ansible_ssh_host=172.21.0.13[tdsql_kafka]tdsql_kafka1 ansible_ssh_host=172.21.0.5tdsql_kafka2 ansible_ssh_host=172.21.0.6tdsql_kafka3 ansible_ssh_host=172.21.0.13[tdsql_consumer]tdsql_consumer1 ansible_ssh_host=172.21.0.15[tdsql_es]tdsql_es1 ansible_ssh_host=172.21.0.15[tdsql_intercity]tdsql_intercity1 ansible_ssh_host=172.21.0.15[tdsql_newdb]tdsql_newdb1 ansible_ssh_host=1.1.1.1tdsql_newdb2 ansible_ssh_host=2.2.2.2tdsql_newdb3 ansible_ssh_host=3.3.3.3[tdsql_ansible_test]tdsql_ansible_test1 ansible_ssh_host=1.1.1.1tdsql_ansible_test2 ansible_ssh_host=2.2.2.2tdsql_ansible_test3 ansible_ssh_host=3.3.3.3
==================复制内容===================
2.10 修改 ansible 配置
[root@tdsql4group_vars]#mv/tdsql/tdsql_install/group_vars/all tdsql/tdsql_install/group_vars/all.bak #备份all配置文件vim tdsql/tdsql_install/group_vars/all #创建配置文件
==================复制内容===================
tdsql_env_cpu: x86tdsql_env_os: yum_installtdsql_zk_num: 3tdsql_sche_netif: eth0tdsql_os_pass: a+complex+passwordtdsql_zk_rootdir: tdsqlzktdsql_metadb_ip: 172.21.0.5tdsql_metadb_port: 15001tdsql_metadb_ip_bak: 172.21.0.6tdsql_metadb_port_bak: 15001tdsql_metadb_user: tdsqlpcloudtdsql_metadb_password: tdsqlpcloudtdsql_hdfs_num: 1tdsql_hdfs_ssh: 22tdsql_hdfs_datadir: data2/hdfs,/data3/hdfs,/data4/hdfstdsql_hdfsdatadir_count: 3tdsql_kafka_logdir: data2/kafka,/data3/kafka,/data4/kafkatdsql_es_mem: 2tdsql_es_log_days: 7tdsql_es_base_path: data/application/es-install/estdsql_intercity_zkrootdir: tdsqlcrosstdsql_intercity_netif: eth0tdsql_zk_clientport: 2118tdsql_zk_serverport1: 2338tdsql_zk_serverport2: 2558tdsql_oc_server_pass: K2JatUv5llBbMrske/k2YbqCtdsql_oc_client_pass: LGhVs0v5nVxcOLQie/k9bb2Itdsql_clouddba_metadb_pass: h5Wyg2Xytdsql_oss_metadb_pass: q9Cjn0Wl
==================复制内容===================
2.11 安装ZooKeeper
安装大概需要15-25分钟。
本步骤完成后,赤兔平台即安装完成。
[root@tdsql4 group_vars] cd tdsql/tdsql_install[root@tdsql4 group_vars] sh playbooks/tdsql_encrypt.sh[root@tdsql4 group_vars] ansible-playbook -i tdsql_hosts playbooks/tdsql_part1_site.yml

Failed=0都为0表示安装过程中没有错误。
注意:如果遇到异常信息可以到tdsql4主机cat var/log/ansible.log路径下查看日志。
3、配置赤兔
赤兔平台在tdsql2 tdsql3主机上,通过腾讯云服务器管理页面确认下,公网IP地址,访问赤兔平台初始化页面。

网页访问安装赤兔模块的机器地址,进行赤兔初始化。
http://82.157.61.93/tdsqlpcloud
3.1 环境检测

全部显示”通过”,点击下一步。
3.2 集群接入

填写,集群名称,OSS服务列表(tdsql2、tdsql3的内网IP地址),点击测试服务器连接。
安装向导会自动补齐,Zookeeper列表和Zookeeper节点信息,并显示集群信息。点击下一步。
3.3 集群初始化
集群初始化需要配置5类资源。

3.3.1 IDC
IDC推荐命名规则:
IDC_城市名首字母_区名首字母_机房编号_序号


3.3.2 机型规格
注:数据磁盘大小:总磁盘容量的65%
日志磁盘大小:总磁盘容量的25%

注:机型名称:PROXY(必须为大写)
3.3.3 设备资源
3.3.3.1 上报网关资源

3.3.3.2 上报DB资源


3.3.4 网关组

是否指定IP,此处选:否。会自动搜索出每个IDC中配置的网关IP。

3.3.5 非分布式实例
3.3.5.1 基础设置
3.3.5.2 容灾设置


3.3.5.3初始化数据库实例


3.3.6 集群初始化完成后参考图

3.4 为系统配置数据库

密码:tdsqlpcloud
3.5 登陆验证
网页访问赤兔管理平台(使用谷歌浏览器)。
http://82.157.61.93/tdsqlpcloud
赤兔管理员:admin/123456


根据得到的连接参数,用 mysql 客户端测试一下赤兔监控库是否可以连接
mysql -h172.21.0.5 -P15001 -utdsqlpcloud -p'tdsqlpcloud'

3.6 监控实例的proxy ip地址
安装完赤兔后,获取到赤兔的监控实例的proxy ip地址,放到ansible的配置文件。
[root@tdsql4 tdsql_full_install_ansible]# vim tdsql/tdsql_install/group_vars/allmetadb_ip: 172.21.0.5 #赤兔监控库的proxy ip主metadb_port: 15001 #赤兔监控库的proxy port主metadb_ip_bak: 172.21.0.6 #赤兔监控库的proxy ip备metadb_port_bak: 15001 #赤兔监控库的proxy port备metadb_user: tdsqlpcloud #赤兔监控库的用户名metadb_password: tdsqlpcloud #赤兔监控库的密码执行安装 part2_site.ymlcd /tdsql/tdsql_installsh playbooks/tdsql_encrypt.sh #生产密文密码,根据明文自动帮大家生成ansible-playbook -i tdsql_hosts playbooks/tdsql_part2_site.yml

4、其它组件安装
4.1 HDFS安装
1.在dfs 机器上设置主机名
[root@tdsql4 tdsql_install]# vim etc/hosts172.21.0.15 tdsql4
2.检查 tdsql_hosts 文件
[root@tdsql4 tdsql_install]# vim tdsql_hosts[hdfs]hdfs1 ansible_ssh_host=172.21.0.15
本实验hdfs采用伪分布式安装,只在tdsql4一台机器上安装hdfs。
3.修改 hdfs 变量
[root@tdsql4 tdsql_install]# vim tdsql/tdsql_install/group_vars/alltdsql_hdfs_num: 1tdsql_hdfs_ssh: 22tdsql_hdfs_datadir: data2/hdfs,/data3/hdfs,/data4/hdfstdsql_hdfsdatadir_count: 3
4.hdfs目录及权限
[root@tdsql4 tdsql_install]# mkdir -p data2/hdfs[root@tdsql4 tdsql_install]# mkdir -p data3/hdfs[root@tdsql4 tdsql_install]# mkdir -p data4/hdfs[root@tdsql4 tdsql_install]# chown -R tdsql:users data2[root@tdsql4 tdsql_install]# chown -R tdsql:users data3[root@tdsql4 tdsql_install]# chown -R tdsql:users data4
5.安装 hdfs 单点
[root@tdsql4 tdsql_install]# cd tdsql/tdsql_install[root@tdsql4 tdsql_install]# ansible-playbook -i tdsql_hosts playbooks/tdsql_hdfs_single.yml

6.切换到 tdsql 用户
[root@tdsql4 tdsql_install]# su - tdsql
7.用 tdsql 用户在 hdfs1 机器上,格式化 namenode
[tdsql@tdsql4 ~]$ hdfs namenode -format

8.用 tdsql 用户在 hdfs1 机器上,启动 namenode 和 datanode
[tdsql@tdsql4 ~]$ hdfs --daemon start namenode[tdsql@tdsql4 ~]$ hdfs --daemon start datanode/*附:用 tdsql 用户关闭 hdfs 进程hdfs --daemon stop datanodehdfs --daemon stop namenode*/
9.用 tdsql 用户执行以下命令
#查看/tdsqlbackup 目录是否已经被自动创建,权限是否如下[tdsql@tdsql4 ~]$ hadoop fs -ls /如果目录不在或者权限不对,用下面命令修改:[tdsql@tdsql4 ~]$ hadoop fs -mkdir /tdsqlbackup[tdsql@tdsql4 ~]$ hadoop fs -chown tdsql.supergroup /tdsqlbackup查看所有datanode节点状态,及上报的容量情况[tdsql@tdsql4 ~]$ hdfs dfsadmin -report
4.2 安装lvs
1.配置tdsql_hosts 文件
vim tdsql_hosts[lvs]lvs1 ansible_ssh_host=172.21.0.5lvs2 ansible_ssh_host=172.21.0.6
2.安装 lvs
ansible-playbook -i tdsql_hosts playbooks/tdsql_lvs.yml
3.赤兔前台操作 lvs
上报 lvs 机器信息(2 台 lvs 机器信息都要上报)接入层管理--> LVS设备资源管理-->上报[LVS设备资源]进入虚拟机,查看网卡信息:ifconfig -ainet 172.21.0.5 netmask 255.255.240.0 #子网掩码:20创建 VIPVIP:规划一个 vip 的地址,vip 的地址要和 lvs 机器的通信 ip 地址在同一个网段内。设备 IP 列表:填入 lvs 机器的通信 ip 地址,一行一个
4.3 安装kafka
1.检查 tdsql_hosts 文件
[root@tdsql4 tdsql_install]# vim /tdsql/tdsql_install/tdsql_hosts[kafka]kafka1 ansible_ssh_host=172.21.0.5kafka2 ansible_ssh_host=172.21.0.6kafka3 ansible_ssh_host=172.21.0.13
2.修改多源同步变量
[root@tdsql4 tdsql_install]# vim /tdsql/tdsql_install/group_vars/allkafka_logdir: /data2/kafka,/data3/kafka,/data4/kafka
3.执行安装多源同步
[root@tdsql4 tdsql_install]# cd /tdsql/tdsql_install[root@tdsql4 tdsql_install]# ansible-playbook -i tdsql_hosts playbooks/tdsql_kafka.yml

4.验证是否安装成功
[root@tdsql1 ~]# cat /data/application/kafka/logs/server.log ----查看 kafka 启动信息[root@tdsql2 ~]# cat /data/application/kafka/logs/server.log ----查看 kafka 启动信息[root@tdsql3 ~]# cat /data/application/kafka/logs/server.log ----查看 kafka 启动信息
4.4 安装 consumer
1.配置 tdsql_hosts 文件
[root@tdsql4 tdsql_install]# vim /tdsql/tdsql_install/tdsql_hosts[consumer]consumer1 ansible_ssh_host=172.21.0.15
2.执行安装 consumer
[root@tdsql4 tdsql_install]# cd /tdsql/tdsql_install[root@tdsql4 tdsql_install]# ansible-playbook -i tdsql_hosts playbooks/tdsql_consumer.yml

3.启动消费者服务
在 consumer 的机器上,使用下面命令启动消费者服务
[root@tdsql4 tdsql_install]# cd /data/application/consumer/bin/[root@tdsql4tdsql_install]#./binlogconsumermgn--zklist 172.21.0.5:2118,172.21.0.6:2118,172.21.0.13:2118 --zkrootpath /tdsqlzk --kafkazklist 172.21.0.5:2118,172.21.0.6:2118,172.21.0.13:2118 --kafkazkrootpath /kafka --dev eth0

4.5 安装ES
1.配置tdsql_hosts 文件(不能与赤兔同一台机器)
[root@tdsql4 tdsql_install]# vim /tdsql/tdsql_install/tdsql_hosts[es]es1 ansible_ssh_host=172.21.0.15
2.修改变量文件
[root@tdsql4 tdsql_install]# vim /tdsql/tdsql_install/group_vars/alles_mem: 2es_log_days: 7es_base_path: /data/application/es-install/es
3.执行安装 es
[root@tdsql4 tdsql_install]# cd /tdsql/tdsql_install[root@tdsql4 tdsql_install]# ansible-playbook -i tdsql_hosts playbooks/tdsql_es_single.yml

4.启动命令(在 es 机器上操作):
[root@tdsql4 tdsql_install]# source /etc/profile
tdsql 用户启动:
[root@tdsql4 tdsql_install]# su - tdsql[root@tdsql4 tdsql_install]# source /etc/profile[root@tdsql4 tdsql_install]# cd /data/application/es-install/es/master/tools[root@tdsql4 tdsql_install]# nohup ./start-elasticsearch.sh &[root@tdsql4 tdsql_install]# cd /data/application/es-install/es/data/tools[root@tdsql4 tdsql_install]# nohup ./start-elasticsearch.sh &
root 用户启动:
[tdsql@tdsql4 tools]$ exit[root@tdsql4 tdsql_install]# cd /data/application/es-install/logstash/tools[root@tdsql4 tdsql_install]# nohup ./start-logstash.sh &[root@tdsql4 tdsql_install]# cd /data/application/es-install/es-cleaner[root@tdsql4 tdsql_install]# nohup ./start-es-cleaner.sh &[root@tdsql4 tdsql_install]# cd /data/application/es-install/kibana-5.6.4-linux-x86_64/bin[root@tdsql4 tdsql_install]# nohup ./kibana &
5.检测是否正常启动
ps -ef |grep elasticsearch | grep -v 'grep' |wc -l输出为:4ps -ef |grep logstash | grep -v 'grep' |wc -l输出为:2ps -ef |grep es-cleaner | grep -v 'grep' |wc -l输出为:1ps -ef |grep 'node/bin/node' | grep -v 'grep' |wc -l输出为:1








